![Amadeus API 点位搜索中 page[limit] 参数的正确用法详解](https://img.php.cn/upload/article/001/246/273/176983177314868.jpg)
在 amadeus points of interest api 中,`page[limit]` 并非独立参数名,而是嵌套在 `page` 字典中的键;需以 `page={'limit': n, 'offset': m}` 形式传入,才能正确控制分页数量与起始位置。
Amadeus 的 Python SDK 对 RESTful API 的查询参数做了结构化封装,其中分页相关参数(如 page[limit] 和 page[offset])必须统一通过 page 字典传入,而非拆分为单独的 page_limit 或 page[limit] 参数。这是因为 SDK 内部会将 page 字典序列化为符合 Amadeus API 规范的查询字符串(例如 ?page[limit]=5&page[offset]=0)。
✅ 正确用法如下:
from amadeus import Client, ResponseError
amadeus = Client(
client_id='YOUR_CLIENT_ID',
client_secret='YOUR_CLIENT_SECRET'
)
try:
response = amadeus.reference_data.locations.points_of_interest.by_square.get(
north=41.42,
west=2.11,
south=41.347463,
east=2.228208,
categories=['SIGHTS', 'NIGHTLIFE'],
page={'limit': 5, 'offset': 0} # ✅ 关键:使用字典形式传入
)
print(f"Found {len(response.data)} POIs")
except ResponseError as e:
print(f"API Error: {e}")⚠️ 常见错误及说明:
- ❌ page[limit]=5:Python 语法错误(方括号不能作为关键字参数名);
- ❌ page_limit=5:SDK 不识别该参数,会被静默忽略;
- ❌ limit=5:该参数未定义在方法签名中,将触发 TypeError。
? 补充说明:
- page['limit'] 控制单页返回结果数,默认为 10,最大值通常为 200(具体上限请参考 Amadeus API 文档);
- page['offset'] 指定起始索引(从 0 开始),用于实现翻页(如第二页:{'limit': 5, 'offset': 5});
- 所有 page 字典中的键均需小写,且仅支持 limit 和 offset 两个字段。
掌握这一传参模式,不仅适用于 by_square,也适用于 by_circle、get(按 ID 查询)等其他支持分页的 POI 方法。建议始终查阅 SDK 源码或官方示例验证参数结构,避免因文档术语(如 page[limit])与 SDK 实现差异导致调试困难。










