我有简单的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
print (row['version'])
KeyError: 'version'
为什么?
答案 0 :(得分:2)
如果你需要每一行都包含密钥version
,你的字典中就会出错,因为异常表明有一行缺少这个密钥。
在这种情况下,您必须检查字典错误的原因。
否则,如果只有部分行包含version
并且您不需要每一行都有此键,则可以使用.get()
函数来解决错误:
for row in returned_data['devices']:
print (row.get('version'))
这将打印每行的版本,包含密钥,而没有version
的版本则为None。
您可以做的另一件事是使用try...except...
:
for row in returned_data['devices']:
try:
print (row['version'])
except KeyError:
print ("row does not contain 'version'")