JSON - 如果项目包含标签,则返回 ID - Python



对于我已经加载的这个json数据。如何返回包含"标签"的项目的所有"id"值?

import json
data = json.dumps({"menu": {
    "header": "SVG Viewer",
    "items": [
        {"id": "Open"},
        {"id": "OpenNew", "label": "Open New"},
        {"id": "ZoomIn", "label": "Zoom In"},
        {"id": "ZoomOut", "label": "Zoom Out"},
        {"id": "OriginalView", "label": "Original View"},
        {"id": "Quality"},
        {"id": "Pause"},
        {"id": "Mute"},
        {"id": "Find", "label": "Find..."},
        {"id": "FindAgain", "label": "Find Again"},
        {"id": "Copy"},
        {"id": "CopyAgain", "label": "Copy Again"},
        {"id": "CopySVG", "label": "Copy SVG"},
        {"id": "ViewSVG", "label": "View SVG"},
        {"id": "ViewSource", "label": "View Source"},
        {"id": "SaveAs", "label": "Save As"},
        {"id": "Help"},
        {"id": "About", "label": "About Adobe CVG Viewer..."}
    ]
}})

我可以访问单个元素,但无法创建一个循环来迭代包含标签的所有 id。

这就是我单独访问项目的方式。

loadData = json.loads(data)
loadData
items = loadData['menu']['items'][1]
print(items['label'])

假设一个始终具有给定键的静态结构:

[d["id"] for d in loadData["menu"]["items"] if "label" in d]

会给你一个所有ID的列表...

遍历loadData['menu']['items']的所有元素并检查是否存在"标签"。

法典:

loadData = json.loads(data)
items = loadData['menu']['items']
for item in items:
    if 'label' in item.keys():
        print 'Label Found'

最新更新