Это мой код:
import json
data1 = {"example1":1, "example2":2}
data2 = {"example21":21, "example22":22}
with open("saveData.json", "w") as outfile:
json.dump(data1, outfile)
json.dump(data2, outfile)
Вывод:
{"example2": 2, "example1": 1} {"example21": 21, "example22": 22}
Когда я хочу, чтобы результат был следующим:
{"example2": 2, "example1": 1}
{"example21": 21, "example22": 22}
Итак, как мне сбрасывать слова данных1 и data2 в один и тот же файл json на две отдельные строки?
Вам нужно будет написать новую строку между ними; просто добавьте .write('\n')
:
with open("saveData.json", "w") as outfile:
json.dump(data1, outfile)
outfile.write('\n')
json.dump(data2, outfile)
Это создает допустимые выходные линии JSON; загрузите данные снова, итерации по строкам в файле и используя json.loads()
:
with open("saveData.json", "r") as infile:
data = []
for line in infile:
data.append(json.loads(line))
AttributeError: 'str' object has no attribute 'read'
, когда я пытаюсь его загрузить, я имею в виду ... Дамп работает так, как я хотелjson.loads()
затем быстро забыл включить конечныеs
в пример кода. Исправлено сейчас.