python - Python json通过特定键值在列表中查找字典
问题描述
我正在使用 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])
这并不理想,因为我没有搜索它,我只是得到列表中的第三项。
所以我正在寻找其他方法来获得结果。谢谢。
解决方案
以下是您如何搜索它:
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]
推荐阅读
- gradle - 在多模块项目中发布 gradle ear 到 artifactory
- hyperledger-fabric - 超级账本结构智能合约是否支持多个 go 文件
- python - 图像未通过本地主机显示在 HTTP Web 文件中
- powershell - 调用 Jenkins API 时使用 Powershell 替代 curl
- sql - 查询表达式中的 MS Access 语法错误(缺少运算符)不存在
- terraform - 如何使用 Terraform 代码在 azure vm 中附加磁盘
- drupal - Drupal 9 是否有任何 Oracle 驱动程序(模块)?
- session - 通过邮递员调用注销后会话对象不清晰
- php - 在 Codeigniter 中如何让库等到视图被渲染
- pyspark - 如何键入提示转换 RDD 的函数?