我有这样的datra结构:
"37_7009": [
{
"viewport_dimensions": {"width": 1583, "height": 798},
"mouse_position": {"y": 1147, "x": 841},
"node_data_attrs": {"groupid": "id_FW13-e052-7009-08", "rankgroupid": "rank_37"}
}
]
和:
with gzip.GzipFile(args.file,'rb') as gzf:
all_hovers = json.load(gzf)
如何读取node_data_attrs值?
for cords in all_hovers[userID]:
x = cords["mouse_position"]["x"]
y = cords["mouse_position"]["y"]
viewport_x = cords["viewport_dimensions"]["width"]
viewport_y = cords["viewport_dimensions"]["height"]
data_attrs = cords["node_data_attrs"]["groupid"]
我得到以下回溯:
Traceback (most recent call last):
File "opdracht2-3.py", line 86, in <module>
main()
File "opdracht2-3.py", line 66, in main
print cords["node_data_attrs"]["groupid"]
KeyError: 'groupid'
这对于读取数据不起作用...有什么建议吗?
您的代码可以正常工作,似乎至少您的某些数据没有groupid
密钥。
用于.get()
解决此问题:
for cords in all_hovers[userID]:
x = cords["mouse_position"]["x"]
y = cords["mouse_position"]["y"]
viewport_x = cords["viewport_dimensions"]["width"]
viewport_y = cords["viewport_dimensions"]["height"]
data_attrs = cords["node_data_attrs"].get("groupid")
如果缺少密钥,则设置data_attrs
为None
。您可以通过将第二个参数传递给来将其设置为其他默认值dict.get()
:
data_attrs = cords["node_data_attrs"].get("groupid", 'default value')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句