我正在Amadeus Github tuto之后测试Amadeus的API,以使其熟悉。我不知道分页,似乎很难处理。
from amadeus import Client, ResponseError
from amadeus import Location
from json_encoder import json
def getFirst():
response = amadeus.reference_data.locations.get(
keyword='LON',
subType=Location.ANY
)
return (response)
amadeus = Client(
client_id=REPLACE_BY_YOUR_API_KEY,
client_secret=REPLACE_BY_YOUR_API_SECRET
)
try:
first = getFirst()
next = amadeus.next(first)
print(next.data)
except ResponseError as error:
print(error)
第一个呼叫有效,但下一个呼叫(分页)我尝试使用相同的[400]
[page] Invalid query parameter
错误尝试不同的呼叫。
我也发现了Amadeus pagination calls,其中si成功使用了相同的呼叫方式
...我想知道如何正确使用Amadeus库中的此功能。
感谢阅读和帮助!
答案 0 :(得分:0)
感谢您报告此错误。它已得到修复,现在您可以安装Python SDK的2.0.1版本以获取此修复程序:
pip安装amadeus
根本原因:
支持分页的API使用方括号参数来索引页面和
偏移量。格式没有通过urlencode
方法正确编码
urllib
在构建网址参数列表时。
对于以下示例:
{'longitude': 0.1278, 'latitude': 51.5074, 'page': {'offset': 10}}
它的编码为:
longitude=0.1278&latitude=51.5074&page={offset : 10}
代替:
longitude=0.1278&latitude=51.5074&page[offset]=10
新的私有方法_urlencode
解析并准备字典,然后
对urlencode
的实际调用已经完成。