【问题标题】:Python json find dictionary in list by specific key valuePython json通过特定键值在列表中查找字典
【发布时间】:2021-03-05 09:36:16
【问题描述】:

我是用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”获取特定路线的整个字典。例如我想用'3'来获取这条路线的信息。预期结果如下。

{'start':'location E',
 'end':'location F',
 'routeNo':'3'}

我尝试过的最接近的方法是

print(list[2])

这并不理想,因为我没有搜索它,我只是得到列表中的第三项。

所以我正在寻找其他方法来获得结果。谢谢。

【问题讨论】:

    标签: python json list dictionary


    【解决方案1】:

    您可以通过以下方式进行搜索:

    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_list。那是因为list 是一个内置函数并且你已经覆盖了,这是一种不好的做法。

    另外,假设你是初学者,这里有一个更容易理解的版本:

    def find_route(data, route_no):
        return [route for route in data if route.get('rounteNo') == route_no]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2013-09-20
      • 1970-01-01
      • 2013-05-22
      • 2021-02-08
      相关资源
      最近更新 更多