Python使用key value搜索Json

2024-10-01 17:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件,我试图使用值(而不是键)进行搜索。Python中是否有一个内置函数可以这样做?在

 [["2778074170846781111111110", "a33104eb1987bec2519fe051d1e7bd0b4c9e4875"],
  ["2778074170846781111111111", "f307fb3db3380bfd27901bc591eb025398b0db66"]]

我想到了这种方法。将文件加载到列表中并开始搜索。有没有更有效的方法?在

^{pr2}$

Tags: 文件方法函数json列表内置pr2f307fb3db3380bfd27901bc591eb025398b0db66
3条回答

在编辑之后,我可以说,没有比将JSON转换成python二维列表并遍历每个节点并将第二个字段与您的“keyvalue”进行比较更快/更有效的方法了。在

编辑:更快/更高效

我假设您正在查找与给定值相关联的键(或多个键)。在

如果您的数据被保证为(键、值)对的列表,这取决于1/数据量和2/在同一数据集上必须执行的查找次数,则可以执行普通的顺序搜索:

def slookup(lst, value):
    return [k for k, v in lst if v == value]

或者构建一个反向索引,然后查找该索引:

^{pr2}$

第二种解决方案只有在同一个数据集上有大量查找时才有意义,显然。。。在

your_dict = {'a': 1, 'b': 2, 'c': 'asd'}  # the dictionary
your_value = 'asd'  # the value to look for
[elem for elem in your_dict.iteritems() if elem[1] == 'asd']  # look for entry with value == your_value
Output: [('c', 'asd')]

编辑:

对于列表:

^{pr2}$

相关问题 更多 >

    热门问题