我有这样的数据结构:
"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'
这对于阅读数据不起作用......有什么建议吗?
答案 0 :(得分:0)
您的代码运行正常,只是某些数据显示没有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')
答案 1 :(得分:0)
给定插入AVL树的以下数字序列,指示插入是否导致无旋转,向右旋转,向左旋转,向左旋转,向右旋转向右旋转。
9,8,7,6,2,3,4,5,11,1,12,23,24
如果没有完成轮换,则按级别顺序列出BST树: 根: L1: L2: ...
如果完成旋转,则按级别顺序列出AVL树:
对于工具栏,请按ALT+F10 (PC)
或ALT+FN+F10 (Mac)
。