我有一个复杂的文档,我试图用Python中的JSON最方便有效地构建。我希望能够用一行检索我的文档中的一个项目(即不通过for
循环)
结构演示如下:
{
"movies": {
"0": {
"name": "charles",
"id": 0,
"loopable": true
},
"1": {
"name": "ray",
"id": 1,
"loopable": true
}
}
}
我正在尝试根据其id
字段轻松获取电影。为此,我现在使index
与电影对象的键相同。因此,当我json.load
查找电影1
的名称的对象时,我可以movie[(id)]['name']
好像我应该在json文件中有list
个电影,但看起来这样会更复杂。它看起来像这样:
{
"movies": [
{
"name": "charles",
"id": 0,
"loopable": true
},
{
"name": "ray",
"id": 1,
"loopable": true
}
]
}
但如果是这种情况,我将不得不循环遍历整个数组:
for movie in movies:
if movie['id'] == (id)
# Now I can get movie['id']['name']
有更有效的方法吗?
答案 0 :(得分:3)
让'movies'
成为词典,而不是列表:
{
"movies": {
"12": {
"name": "charles",
"id": 12,
"loopable": true
},
"39": {
"name": "ray",
"id": 39,
"loopable": true
}
}
}
您可以使用yourjson['movies'][str(id)]