我有一个字典列表,我只想从每个字典中获取一个特定的项目。我的数据模式是:

data = [
    {
        "_id": "uuid",
        "_index": "my_index",
        "_score": 1,
        "_source": {
            "id" : 1,
            "price": 100
        }
    },
    {
        "_id": "uuid",
        "_index": "my_index",
        "_score": 1,
        "_source": {
            "id" : 2,
            "price": 150
        }
    },
    {
        "_id": "uuid",
        "_index": "my_index",
        "_score": 1,
        "_source": {
            "id" : 3,
            "price": 90
        }
    }
]


我想要的输出:

formatted_data = [
    {
        "id": 1,
        "price": 100
    },
    {
        "id": 2,
        "price": 150
    },
    {
        "id": 3,
        "price": 90
    }
]


为了形成数据,我使用了迭代(for

formatted_data = []
for item in data:
    formatted_data.append(item['_source'])


在PHP中,我可以使用array_column()而不是for循环。那么在我的情况下,python3中for的替代方案是什么?
提前致谢。

最佳答案

您可以使用列表理解:

In [11]: [e['_source'] for e in data]
Out[11]: [{'id': 1, 'price': 100}, {'id': 2, 'price': 150}, {'id': 3, 'price': 90}]

关于python - 在python3中等效于array_column,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50461252/

10-13 01:11