Как записать список словарей в файл JSON

#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.