#python #json
#python #json
Вопрос:
Я пытаюсь написать список словарей в файле JSON, но я испытываю трудности, из-за которых приходится создавать список для каждого dict, а также пропускать запятые после каждого dict.
То, что я пробовал до сих пор:
data_list = [data]
with open('data.json', 'a') as out_file:
json.dump([data.__dict__ for data in data_list], out_file)
Результат, который я получил:
[
{
"id": "1",
"task_id": "task_1",
"link": "https://google.com",
"title": "Google",
"message": "Redirect",
"hits": 0
}
][
{
"id": "2",
"task_id": "task_2",
"link": "https://fb.com",
"title": "Facebook",
"message": "Redirect",
"hits": 0
}
]
Это ожидаемое поведение в файле JSON:
[
{
"id": "1",
"task_id": "task_1",
"link": "https://google.com",
"title": "Google",
"message": "Redirect",
"hits": 0
},
{
"id": "2",
"task_id": "task_2",
"link": "https://fb.com",
"title": "Facebook",
"message": "Redirect",
"hits": 1
}
]
Также пробовал с json.dumps()
, который ничего не вернул.
Комментарии:
1. можете ли вы опубликовать образец входных данных
2. пожалуйста, внесите свой вклад
dictionary
3. как выглядит data_list?
4. Похоже, что вы добавляете в файл, поэтому каждый раз, когда вы записываете в этот файл, вы получаете новый массив. Вы не можете ожидать, что файл будет интеллектуальным и объединит массивы, вы должны сделать это самостоятельно. Если вам нужно добавить свой контент к ранее существующему, вам придется загрузить ранее существующий массив, добавить новый словарь и переписать файл со всем массивом.
5.
data
dict выглядит так, как я получил, но без скобок списка. Итак, я добавляю dict в список, а затем пытаюсь сбросить его в json.