首页 > 解决方案 > 在 Python 列表中按字典 ID 查找元素[字典]

问题描述

我遇到的问题如下:我得到了已转换为字典的 JSON 数据。JSON 数据如下所示:

[{"text": "foo1", "value": 1},
{"text": "foo2", "value": 2}]

所以我在 Python 中转换的 json 是 json = [{'text': 'foo1', 'value': 1}, {'text': 'foo2', 'value': 2}].

这些字典中的文本是随机数据,可以交换任何,另一方面,值可以解释为从 1 到无穷大的固定和唯一 ID。

现在我的问题是什么可能是最有效的获取文本的方法。

因为我尝试的是

foo1 = [v['text'] for v in json if json['value'] == 1][0]    # and
foo2 = {list(v.values())[1]: list(v.values())[0] for v in json}[2]

虽然我不得不承认我对这些解决方案并不满意......

标签: pythonpython-3.x

解决方案


如果您需要通过 获取多个项目,最有效的方法value是将此 dicts 列表转换为具有valueas 键和text值的 dict:

d = { x['value']: x['text'] for x in dic }

现在您可以使用d[n]to find textfor valueequal n


推荐阅读