为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2023-03-01 15:45:24
我正在尝试学习从 json 文件中获取信息。大小为 250MB 的 json 文件在我的桌面上。我是 python 的新手,尽管不知疲倦的谷歌得到了答案,但我确信我遗漏了一些东西。我的理解是,当我加载一个 Json 文件时,预期的类型是一个字典。import jsonwith 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",    }]
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

如果第一个字符是“[”,那么 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'


查看完整回答
反对 回复 2023-03-01
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信