我从API中提取json数据。我的脚本将存储此数据并将有关此数据的信息添加到字典中。
要存储json数据,我计划使用:
json_str = json.dumps(dict1)
存储字典的适当方法是什么?使用
将dict格式转换为json格式是否合适?{{1}}
并以与上述相同的方式保存?
答案 0 :(得分:4)
您应该将JSON数据保存在Python list
或dict
中,具体取决于JSON数据的结构。
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类型。