Скопируйте два словаря в файл json на отдельных строках

1

Это мой код:

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 на две отдельные строки?

Теги:
dictionary
dump

1 ответ

0
Лучший ответ

Вам нужно будет написать новую строку между ними; просто добавьте .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))
  • 0
    Я получаю эту ошибку AttributeError: 'str' object has no attribute 'read' , когда я пытаюсь его загрузить, я имею в виду ... Дамп работает так, как я хотел
  • 0
    @Caz: это потому, что я сделал глупую опечатку; Я прямо заявил, что вам нужно использовать json.loads() затем быстро забыл включить конечные s в пример кода. Исправлено сейчас.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню