在JSON中为python构建数据的最快方法

时间:2015-07-06 21:52:13

标签: python json

我有一个复杂的文档,我试图用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']

有更有效的方法吗?

1 个答案:

答案 0 :(得分:3)

'movies'成为词典,而不是列表:

{
    "movies": {
        "12": {
            "name": "charles",
            "id": 12, 
            "loopable": true
        },
        "39": {
            "name": "ray",
            "id": 39, 
            "loopable": true
        }
    }
} 

您可以使用yourjson['movies'][str(id)]

按ID访问电影