【发布时间】:2014-04-12 11:59:42
【问题描述】:
我编写了我的第一个 Python 脚本(注意:我是 Python 新手),我正在尝试解析一些 JSON 字符串以检索与特定 JSON 键相关的值,但我遇到了麻烦。
在我的script.py 文件中,我有以下内容:
data = '{ "key1": "152", "key2": "da8fb07ace5512", "key3": "cfed379e13aebc" }'
data_decoded = json.load(data)
data["key1"]
当我使用命令python script.py 运行上述脚本时,我得到:
Traceback (most recent call last):
File "/script.py", line 2, in <module>
data_decoded = json.load(data)
File "/usr/lib/python2.7/json/__init__.py", line 274, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
我该如何解决这个问题?我希望返回值是152。
更新(评论后)
如果我使用loads(),那么我会得到:
Traceback (most recent call last):
File "/script.py", line 3, in <module>
data["key1"]
TypeError: string indices must be integers, not str
我不在乎它是字符串还是整数。我只想检索该值。
【问题讨论】:
-
尝试使用
json.loads()而不是json.load()- 解析字符串而不是文件流。 -
"我不在乎它是字符串还是整数。" - 它不是字符串或整数的值。您看到错误消息中的“索引”字样了吗?您应该阅读和理解错误消息,这就是它们出现在这里的原因。他们会帮助你。
标签: python json parsing error-handling