我正在尝试学习从json文件中获取信息。我的桌面上有250MB大小的json文件。
我是python的新手,我确信尽管Google孜孜不倦地想得到答案,但我仍然缺少一些东西。
我了解我在加载Json文件时,预期的类型是Dict。
import json
with open (r'c:\eseek\limitsdata.json) as f:
data = json.load(f)
print type(data)
我得到
我刚刚意识到,这类似于已有的帖子[https://stackoverflow.com/questions/57030807/python-json-loads-returns-list-instead-of-dict]
我想迭代到json,但是当我尝试以下步骤时...不起作用
data_str = json.dumps(data)
print(data_str[0])
我没有第一个嵌套的组,但是我得到了第一个字符串“ [”
我知道我在这里缺少什么。如果有人可以突出显示相同的内容,那就太好了
样本数据。如果模型在主文件中为500,我正在尝试任务详细信息。
[
{
"Model": " 500",
"Task": “71-00-00-200-802 ",
},
{
"Model": " 900",
"Task": " 71-00-00-200-802",
}
]
答案 0 :(得分:0)
如果第一个字符为“ [”,则json文件确实应解析为列表。例如,
a_list = json.loads("[ 'a', 'b', 'c' ] ") # should give list [a,b,c]
a_dict = json.loads("{ 'data' : ['a', 'b', 'c']} ") # gives a dict
print(type(a_list), type(a_dict)) # should be list, dict
a_dict['data'] # can look up the field in this dict
关于第二个问题:如果您要遍历个项目(上面a_list
的第一项是项目“ a
”),则将其保留为列表。如果要遍历个字符(json.dumps(a_list)
的第一个字符是“ [
”),则首先将其转换为字符串。
您无需将json转换回字符串即可对其进行迭代,只需执行
for item in a_list:
print(item)
编辑:尤其是对于您的数据,您可以访问以下字段:
with open (r'c:\eseek\limitsdata.json') as f:
data = json.load(f)
print( data[0]["Model"] ) # prints '500'
print( data[1]["Task"] ) # prints ' 71-00-00-200-802'