Stripe Python异步代码报错:'coroutine'对象无auto_paging_iter属性
问题根源与解决方法
你的核心错误是没有先await异步方法list_async()就直接链式调用迭代器方法。list_async()是异步函数,直接调用会返回一个coroutine对象,而非实际的Stripe列表结果,自然没有auto_paging_iter或auto_paging_iter_async属性。
正确的异步分页遍历代码
方式1:使用全局stripe客户端
import asyncio import stripe stripe.api_key = "secret" async def main(): # 先await list_async()拿到实际的列表对象 customer_list = await stripe.Customer.list_async() # 调用异步迭代器,直接用async for遍历(无需await迭代器) async for c in customer_list.auto_paging_iter_async(): print(c) if __name__ == "__main__": asyncio.run(main())
方式2:使用StripeClient实例
import asyncio from stripe import StripeClient api_key = "secret" client = StripeClient(api_key) async def main(): customer_list = await client.customers.list_async() async for c in customer_list.auto_paging_iter_async(): print(c) if __name__ == "__main__": asyncio.run(main())
补充说明
- Stripe Python库v10.x版本中,异步列表的分页迭代必须使用
auto_paging_iter_async()方法,而非同步的auto_paging_iter() - 异步方法
list_async()必须先被await,得到实际的列表结果对象后,才能调用迭代器方法 - 官方README的示例可能存在版本适配问题,或者写法不够严谨,导致你直接照搬出现错误
内容的提问来源于stack exchange,提问作者ardaar
相关产品推荐
相关产品推荐

