簡體   English   中英

在python中將多個列表寫入JSON文件

[英]Write multiple lists to a JSON file in python

假設我有以下列表

list1 = [{"created_at": "2012-01-31T10:00:04Z"},{"created_at": "2013-01-31T10:00:04Z"}] 
list2 = [{"created_at": "2014-01-31T10:00:04Z"}] 

我可以使用json.dump(list1,file,indent=2)將第一個列表寫入 JSON 文件json.dump(list1,file,indent=2)結果是

[
  {
    "created_at": "2012-01-31T10:00:04Z"
  },
  {
    "created_at": "2013-01-31T10:00:04Z"
  }
]

我的問題是,如何附加第二個列表的內容? 如果我簡單地做json.dump(list2,file,indent=2) ,它會導致一個無效的 JSON 文件,如下所示。

[
  {
    "created_at": "2012-01-31T10:00:04Z"
  },
  {
    "created_at": "2013-01-31T10:00:04Z"
  }
][
  {
    "created_at": "2014-01-31T10:00:04Z"
  }
]

編輯:列表是通過解析大約 8000 個文件動態創建的。 上面的列表只是示例。 我可能會向 JSON 文件寫入 8000 個列表,因此簡單的追加將不起作用。

In [1]: import json

In [2]: list1 = [{"created_at": "2012-01-31T10:00:04Z"},{"created_at": "2013-01-31T10:00:04Z"}] 

In [3]: list2 = [{"created_at": "2014-01-31T10:00:04Z"}] 

In [4]: list1.extend(list2)

In [5]: json.dumps(list1)
Out[5]: '[{"created_at": "2012-01-31T10:00:04Z"}, {"created_at": "2013-01-31T10:00:04Z"}, {"created_at": "2014-01-31T10:00:04Z"}]'

In [8]: json.dumps(list1 + list2)
Out[8]: '[{"created_at": "2012-01-31T10:00:04Z"}, {"created_at": "2013-01-31T10:00:04Z"}, {"created_at": "2014-01-31T10:00:04Z"}]'

解析文件時,附加(或擴展)到一個唯一的列表並最終轉換為 JSON。 假設您的 parse 函數是parse

>>> import json
>>> result = []
>>> for file in files:
...     result.append(parse(file))
...
>>> json.dump(result, file1, indent=2)

我發現下面給出的解釋有點缺乏,這就是為什么試圖在這里考慮一個觀點。 一個Json文件可以有一個單一的父元素。 因此,如果在第一次迭代時轉儲第一個列表,然后在第二次迭代時,您將在文件中得到格式錯誤。 B/c Json 要求在轉儲之前將這兩個列表包裝在一個列表/數組中。

因此,您將所有列表存儲在一個列表中(使用附加或任何其他上述方法)。 然后你將這個聚合列表轉儲到你的Json文件中。 但是,如果您不想這樣做,則必須為不同的列表創建不同的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM