什么是在python中存储字典和json文件类型的推荐方法

时间:2016-02-18 08:29:47

标签: python json dictionary formatting storage

我从API中提取json数据。我的脚本将存储此数据并将有关此数据的信息添加到字典中。

要存储json数据,我计划使用:

json_str = json.dumps(dict1)

存储字典的适当方法是什么?使用

将dict格式转换为json格式是否合适?
{{1}}

并以与上述相同的方式保存?

2 个答案:

答案 0 :(得分:4)

您应该将JSON数据保存在Python listdict中,具体取决于JSON数据的结构。

来自http://www.json.org/

  

JSON基于两种结构:

     
      
  • 名称/值对的集合。在各种语言中,这被实现为对象,记录,结构,字典,哈希表,键控   列表或关联数组。
  •   
  • 有序的值列表。多数情况   语言,这被实现为数组,向量,列表或序列。
  •   

json库是常用于加载JSON数据并将其存储在Python对象中的库。但请注意,如果JSON数据类似于load,则[...]方法将返回(递归地)Python 列表,如果JSON数据类似于 dict 数据类似于{...}

要读取包含{...}的JSON文件并将其内容保存到字典数据结构,请使用:

>>> with open('data.json', 'r') as f:
...   data = json.load(f)
...
>>> type(data)
<type 'dict'>

如果文件包含JSON列表[...],则:

>>> type(data)
<type 'list'>

同样从URL中读取JSON数据时:

>>> response = urllib2.urlopen(URL)
>>> data = json.load(response)

您始终可以将列表转换为字典,例如:

>>> dataD = dict([i,data[i]] for i in xrange(len(data)))

这样做会丢失JSON数组结构提供的订单信息。

答案 1 :(得分:1)

Usualy我使用dicts来存储数据,并且只能通过网络传输/到JSON以传输数据。 JSON不是Python的本机类型,因此最好使用本机Python类型。