Json 文件作为列表而不是字典加载。使用蟒蛇

我正在尝试学习从 json 文件中获取信息。大小为 250MB 的 json 文件在我的桌面上。


我是 python 的新手,尽管不知疲倦的谷歌得到了答案,但我确信我遗漏了一些东西。


我的理解是,当我加载一个 Json 文件时,预期的类型是一个字典。


import json


with open (r'c:\eseek\limitsdata.json) as f:

   data = json.load(f)


print type(data)

我得到 <class 'list'> 作为输出...但不确定为什么这不是我在许多教程中看到的字典


我刚刚意识到这类似于已经可用的帖子 [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",


    }

]


开心每一天1111
浏览 165回答 1
1回答

qq_遁去的一_1

如果第一个字符是“[”,那么 json 文件确实应该被解析为一个列表。例如,a_list = json.loads("[ 'a', 'b', 'c' ] ")&nbsp; &nbsp;# should give list [a,b,c]a_dict = json.loads("{ 'data' : ['a', 'b', 'c']} ") # gives a dictprint(type(a_list), type(a_dict)) # should be list, dicta_dict['data']&nbsp; # can look up the field in this dict至于你的第二个问题:如果你想遍历项目(a_list上面的第一项是项目“ a”)然后将其保留为列表。如果你想遍历字符(第一个字符json.dumps(a_list)是“ [”),那么你先把它转换成一个字符串。您无需将 json 转换回字符串即可对其进行迭代,只需执行for item in a_list:&nbsp; &nbsp; print(item)编辑:特别是对于您的数据,您可以按如下方式访问字段:with open (r'c:\eseek\limitsdata.json') as f:&nbsp; &nbsp;data = json.load(f)print( data[0]["Model"] ) # prints '500'print( data[1]["Task"] ) # prints ' 71-00-00-200-802'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python