在JSON(Python)中查找元素的最快方法

The Fastest method to find element in JSON (Python)

本问题已经有最佳答案,请猛点这里访问。

我有JSON:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
 {
 "name":"Apple",
 "price":2,
 "have":0,
 "max":36
 },
 {
 "name":"Pineapple",
 "price":5,
 "have":6,
 "max":17
 }
]

我需要最快的函数,它接收名称并发送价格。例如,对于print(jsoname("apple")为2。

另外,请不要张贴循环答案,我知道。我需要快速的方法和方法的名称


以下是一个简单的方法:

1
2
3
4
def function(json_object, name):
    for dict in json_object:
        if dict['name'] == name:
            return dict['price']

如果你确定没有重复的名字,一个更有效的方法是使用列表理解:

1
2
def function(json_object, name):
        return [obj for obj in json_object if obj['name']==name][0]['price']


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from json import loads

json ="""[
 {
 "name":"Apple",
 "price":2,
 "have":0,
 "max":36
 },
 {
 "name":"Pineapple",
 "price":5,
 "have":6,
 "max":17
 }
]"""


parsedJson = loads (json)

def jsonname (name):
    for entry in parsedJson:
        if name == entry ['name']:
            return entry ['price']