Python读取JSON值时出错
我有简单的JSON,因为我正在读取其中的值 这是一个代码:Python读取JSON值时出错,python,json,Python,Json,我有简单的JSON,因为我正在读取其中的值 这是一个代码: for row in returned_data['devices']: print (row['version']) 脚本打印所有“版本”值,最后 Traceback (most recent call last): File "api.py", line 370, in <module> main(sys.argv[1:]) File "api.py", line 71, in main
for row in returned_data['devices']:
print (row['version'])
脚本打印所有“版本”值,最后
Traceback (most recent call last):
File "api.py", line 370, in <module>
main(sys.argv[1:])
File "api.py", line 71, in main
print (row['version'])
KeyError: 'version'
回溯(最近一次呼叫最后一次):
文件“api.py”,第370行,在
main(sys.argv[1:])
文件“api.py”,第71行,主
打印(第[‘版本’]行)
KeyError:“版本”
为什么?如果您需要每一行都包含键
版本
,则您的字典中有一个错误,因为异常指示有一行缺少此键
在这种情况下,你必须检查你的字典为什么错了
否则,如果只有部分行包含version
,并且不需要每行都有此键,则可以使用.get()
函数绕过此错误,如下所示:
for row in returned_data['devices']:
print (row.get('version'))
这将打印每行的版本,其中包含键,没有version
的行则无键
您可以做的另一件事是使用尝试…除了…
:
for row in returned_data['devices']:
try:
print (row['version'])
except KeyError:
print ("row does not contain 'version'")
如果您需要每一行都包含键
version
,则字典中有一个错误,因为异常指示有一行缺少此键
在这种情况下,你必须检查你的字典为什么错了
否则,如果只有部分行包含version
,并且不需要每行都有此键,则可以使用.get()
函数绕过此错误,如下所示:
for row in returned_data['devices']:
print (row.get('version'))
这将打印每行的版本,其中包含键,没有version
的行则无键
您可以做的另一件事是使用尝试…除了…
:
for row in returned_data['devices']:
try:
print (row['version'])
except KeyError:
print ("row does not contain 'version'")
您能给我们看一下您的json吗?这表明键“version”不存在于一行中。如果您不关心是否有缺少版本的行,可以使用get函数来防止错误:row.get('version')输入JSON是什么?看起来你在
返回的数据['devices']
中有一条记录,它没有keyversion
。脚本打印所有的“version”-s,最后失败了,我检查了所有json-s数组都有“version”后,你能发布json吗?如果需要,只需检查敏感数据。您可以向我们显示您的json吗?这表示密钥“version”不存在于一行中。如果您不关心是否有缺少版本的行,可以使用get函数来防止错误:row.get('version')输入JSON是什么?看起来你在返回的数据['devices']
中有一条记录,它没有keyversion
。脚本打印所有的“version”-s,最后失败了,我检查了所有json-s数组都有“version”后,你能发布json吗?只要审查敏感数据,如果你需要。谢谢,我有错误处理,但特别是不检查版本是否存在。在json for/each运行时出现了一些脏数据。谢谢,我有错误处理,但特别是不检查版本是否存在。在json for/each运行时出现一些脏数据。