gpt4 book ai didi

Python:Json.load 给出列表并且无法从中解析数据

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:17 25 4
gpt4 key购买 nike

我有一个 data.json 文件,如下所示:

["{\"Day\":\"Today\",\"Event\":\"1\", \"Date\":\"2019-03-20\"}"]

我正在尝试使用 python 从该文件中获取“事件”,但不幸地失败了。

with open('data.json', 'r') as json_file:
data = json.load(json_file)
print (data['Event'])

我收到以下错误:

类型错误:列表索引必须是整数或切片,而不是 str

即使我尝试了

print (data[0]['Event'])

然后我得到这个错误:

类型错误:字符串索引必须是整数

还有一点:

print(type(data))

给我“列表”

我找遍了都没有找到解决办法。非常感谢您的建议。

最佳答案

你可以为此使用 ast 模块:

import ast

mydata = ["{\"Day\":\"Today\",\"Event\":\"1\", \"Date\":\"2019-03-20\"}"]
data = ast.literal_eval(mydata[0])
data
{'Day': 'Today', 'Event': '1', 'Date': '2019-03-20'}

data['Event']
'1'

编辑

您的原始代码确实将数据加载到列表结构中,但尽管 json 语法正确,但该列表中只包含一个字符串条目。 astjson 一样,会将字符串条目解析为 python 数据结构 dict

实际上,当您尝试索引该列表时,它与在字典中调用键不同,因此 切片不能是 str:

alist = [{'a':1, 'b':2, 'c':3}]
alist['a']
TypeError

# need to grab the dict entry from the list
adict = alist[0]
adict['a']
1

关于Python:Json.load 给出列表并且无法从中解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com