获取任意深度的JSON树中两个特定键的值

时间:2018-10-23 18:26:48

标签: python json dictionary key

试图解析JSON树(其先验深度未知),以将“ label”字符串和“ bbox”字典的值配对在一起。 JSON树还可以(并且通常确实)在名为“ children”的第三个键列表中嵌套另一个label / bbox键/值。

在此“ children”列表中,可以依次嵌套另一个(几个)子级(每个子级都有更多的label / bbox键)。

我想解析整个JSON树 递归,并返回以键作为标签的字典 >,并且该键的值可以是bbox字典的列表或集合。给定标签可以(可能有多个)boundingBoxes

因此,类别标签“ dog”可以具有1到多个边界框,每个边界框由“ {topLeft”,“ topRight”,“ bottomLeft”和“ {{ 1}}”字典,每个字典均由“ x”和“ y”键/值定义。

示例输入可能是:

bottomRight

示例输出将展平嵌套结构,并仅返回字典“ "my_tree": [{ "handle": 262258, "key2": "explorer.exe", "key3": "Win32", "box": { "topLeft": { "x": 0, "y": 1331 }, "topRight": { "x": 2560, "y": 1331 }, "bottomRight": { "x": 2560, "y": 1371 }, "bottomLeft": { "x": 0, "y": 1371 } }, "isOff": false, "isEnabled": false, "isKeyboardFocusable": false, "hasKeyboardFocus": false, "controlType": 50033, "uiElementType": "pane", "children": [{ "key1": 131148, "key2": "explorer.exe", "name": "Start", "key3": "Win32", "box": { "topLeft": { "x": 0, "y": 1331 }, "topRight": { "x": 48, "y": 1331 }, "bottomRight": { "x": 48, "y": 1371 }, "bottomLeft": { "x": 0, "y": 1371 } }, "isOff": false, "isEnabled": false, "isKeyboardFocusable": false, "hasKeyboardFocus": false, "controlType": 50000, "uiElementType": "button", "children": [] } ”和labels字典的关联集(或列表)。

看起来像这样:

bbox

0 个答案:

没有答案