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. Я хочу, чтобы каждая запись словаря находилась на новой строке.
Любые советы будут оценены.
Ответы
Ответ 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
, он автоматически добавляет новые строки.