我正在使用api来拉出这个列表。我需要用户能够进入‘名称’的航空公司。然后,一旦该名称被捕获,将“名称”与同一词典中的“民航组织”代码匹配。
我的代码
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"我的问题是,它不是从同一本字典中提取匹配的“国际民航组织”,而是把下一本放在第一位。
因此,例如,如果用户输入“阿里航空公司”,它应该是“这是您的航空公司: Ali航空公司,您的国际民航组织代码是: 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
}
]
}发布于 2018-08-29 00:23:17
目前,在您提供的代码中,您总是得到第一家航空公司(数据‘航空公司’)。
相反,您可能应该首先将数据转换为以航空公司名称为关键字的字典,例如:
airlines = { a['name'] : a for a in data['airlines']}现在,使用该字典和name变量,您可以找到相应的代码:
icao = airlines[name]['icao'] # This will give you the code give a name.https://stackoverflow.com/questions/52066017
复制相似问题