Подтвердить что ты не робот

Python JSON дамп/добавляет к .txt с каждой переменной на новой строке

Мой код создает словарь, который затем сохраняется в переменной. Я хочу записать каждый словарь в файл JSON, но я хочу, чтобы каждый словарь находился в новой строке.

Мой словарь:

hostDict = {"key1": "val1", "key2": "val2", "key3": {"sub_key1": "sub_val2", "sub_key2": "sub_val2", "sub_key3": "sub_val3"}, "key4": "val4"}

Часть моего кода:

g = open('data.txt', 'a')
with g as outfile:
  json.dump(hostDict, outfile)

Это добавляет каждый словарь в файл data.txt, но он делает это inline. Я хочу, чтобы каждая запись словаря находилась на новой строке. Любые советы будут оценены.

4b9b3361

Ответ 1

Ваш вопрос немного неясен. Если вы генерируете hostDict в цикле:

with open('data.txt', 'a') as outfile:
    for hostDict in ....:
        json.dump(hostDict, outfile)
        outfile.write('\n')

Если вы хотите, чтобы каждая переменная в hostDict находилась в новой строке:

with open('data.txt', 'a') as outfile:
    json.dump(hostDict, outfile, indent=2)

Когда задан аргумент ключевого слова indent, он автоматически добавляет новые строки.