Python json按特定键值在列表中查找字典
我正在使用api获取有关公交线路的信息,并获得了一个信息字典列表 下面是一些例子Python json按特定键值在列表中查找字典,python,json,list,dictionary,Python,Json,List,Dictionary,我正在使用api获取有关公交线路的信息,并获得了一个信息字典列表 下面是一些例子 list = [{'start':'location A', 'end':'location B', 'routeNo':'1'}, {'start':'location C', 'end':'location D', 'routeNo':'2'}, {'start':'location E', 'end':'location F', 'routeNo':'3'}] 我正试图通过它的“routeNo”
list = [{'start':'location A',
'end':'location B',
'routeNo':'1'},
{'start':'location C',
'end':'location D',
'routeNo':'2'},
{'start':'location E',
'end':'location F',
'routeNo':'3'}]
我正试图通过它的“routeNo”来获取有关特定路线的整个词典。例如,我想使用“3”获取此路线的信息。预期结果如下
{'start':'location E',
'end':'location F',
'routeNo':'3'}
我尝试过的最接近的事情是
print(list[2])
这并不理想,因为我并没有搜索它,我只是得到列表中的第三项
因此,我正在寻找其他方法来获得结果。谢谢。以下是您可以搜索它的方法:
def find_route(data, route_no):
return list(filter(lambda x: x.get('rounteNo') == route_no, data))
route = find_rounte(route_list, '3')
注:我将list
重命名为route\u list
。这是因为list
是一个内置函数,您已经覆盖了它,这是一个糟糕的做法
另外,假设您是初学者,这里有一个更简单易懂的版本:
def find_route(data, route_no):
return [route for route in data if route.get('rounteNo') == route_no]