Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python从JSON文件读取数据_Python_Json - Fatal编程技术网

用Python从JSON文件读取数据

用Python从JSON文件读取数据,python,json,Python,Json,我有这样一个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"} } ] 与: 如

我有这样一个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"}
    }
]
与:

如何读取节点\u数据\u属性值

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'
回溯(最近一次呼叫最后一次):
文件“opdracht2-3.py”,第86行,在
main()
文件“opdracht2-3.py”,第66行,主目录
打印跳线[“节点数据属性”][“组ID”]
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\u attrs
设置为
None
。您可以通过将第二个参数传递给dict.get(),将其设置为不同的默认值:


给定插入到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)

在您的代码中,什么是
所有悬停
?你能发布更多的json吗?我几乎看不到您的代码试图获取的内容与您发布的数据之间有任何关系。您将json数据保存在文件中,并希望读取它并获取节点数据属性?添加了解释所有悬停内容的代码:)应按原样工作。。。我是说密码。JSON不是valid@user3289867:因此,您的一些
节点\u数据\u属性
对象可能没有
groupid
键?您的示例数据有,但您是否100%确定所有条目都有该键?Graag gedaan,prettig weekend.:-)我不确定这是否有用。但是如果你可以用C++来帮助这个问题,使用Visual Studio。也有麻烦吗
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 = cords["node_data_attrs"].get("groupid", 'default value')