如何在包含多个词典的列表的一部分的词典中查找键的值。(从api中拉出

缺乏天空

我正在使用API​​提取此列表。我需要用户能够输入航空公司的“名称”。然后,一旦捕获到名称,则将“名称”与同一词典中的“ icao”代码匹配。

我的密码

import requests 
api-url= ("https://api.url")
class airlinenames(Component):
    def start(self):
        name = "Ali Airlines"
        url = API_URL
        data = requests.get(url).json()

        icao = data['airlines'][0]['icao']

        text = ( "this is your airline: {name} and this is the icao code: {icao}"
        ).format(
           name=name,
           icao=icao
        )
        message = self.create_message(text=text)
        return self.respond(message=message, action="next"

我的问题是,与其从同一词典中提取匹配的“ icao”,不如将其排在顶部。

因此,例如,如果用户输入“ Ali航空公司”,它应显示为“这是您的航空公司:Ali航空公司,您的ICAO代码是:ALI

示例列表:

{
"airlines": [
  { 
   "fs": "BS",
   "iata": "BS",
   "icao": "ALI",
   "name": "Ali Airlines",
   "active": true
  },
  {
   "fs": "BS*",
   "iata": "BS",
   "icao": "BAL",
   "name": "Bali Airline",
   "active": true
  },
  {
   "fs": "BSK",
   "iata": "LL",
   "icao": "GAL",
   "name": "Gali airline",
   "active": true
  }
]
}
欣森

当前,在您提供的代码中,您始终可以获得第一家航空公司(data ['airlines'] [0])。

相反,您可能应该先将数据转换成以航空公司名称为关键字的字典,例如:

airlines = { a['name'] : a for a in data['airlines']}

现在,有了该字典和name变量,您可以找到相应的代码:

icao = airlines[name]['icao'] # This will give you the code give a name.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在json文件中查找和替换值的一部分

使用Flask在HTML文件中显示python词典的一部分

如何在返回值中获取列表的一部分

如何在PhpStorm包含路径中包含PHAR的一部分

如何在 JavaScript 中识别 localStorage 键的一部分?

如何在python数组中查找字符串的一部分

如何在目录中查找知道名称一部分的文件

如何在requirements.txt中只包含包的一部分

如何基于多个条件更改列的一部分中的值?

如何只处理 Python 中字典值列表的第一部分?

如何在OCaml / ReasonML中获取列表的一部分?

如何在RDD中总结列表的一部分

如何在Recyclerview中仅刷新列表的一部分

如何在python列表中删除字符串的一部分?

如何在数组中搜索值的一部分

如何在sql中显示“值”列的一部分?

如何在词典列表中查找常见的词典

如何在词典列表中添加新的键和值?

如何在dict中查找字符串是否作为字符串中带点的键的一部分

如何检查列表是否包含值的一部分?

如何查找搜索字符串的一部分是否包含在字符串中?

根据连续值占列表一部分的数量替换列表中的值

如何从词典列表中修改词典的值

如何将反应状态中的值作为变量包含在 API 调用中作为查询参数的一部分

在bash中获取列表的一部分

在python中交换列表的一部分

如何在用户输入提供的列表中查找字符串或字符串的一部分?

尝试在 Laravel 中获取特定的数组键和值的一部分

如何在不创建新列表的情况下在Python中获得列表的一部分?