对于我已经加载的这个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'