对于我加载的这个json数据。如何为包含“label”的项目返回所有“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'])
答案 0 :(得分:2)
假设一个静态结构总是有给定的键:
viewDidAppear
会为您提供所有ID的列表...
答案 1 :(得分:0)
迭代loadData['menu']['items']
的所有元素并检查是否存在'label'。
代码:
loadData = json.loads(data)
items = loadData['menu']['items']
for item in items:
if 'label' in item.keys():
print 'Label Found'