You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何异步运行Stripe的PaymentIntent.list接口 解决await赋值语法错误

问题解决方法

语法错误原因

你触发语法错误的核心原因是await关键字的位置写反了:await需要修饰整个异步调用表达式,必须放在赋值符号=的右侧,不能写在变量左侧,才会出现SyntaxError: cannot assign to await expression报错。

异步实现方案

Stripe Python SDK 从v2.30.0版本开始内置原生异步客户端,无需额外依赖,正确实现步骤如下:

  1. 初始化异步Stripe客户端,不要使用默认的同步全局客户端
import asyncio
import stripe

# 替换为你的Stripe API密钥
async_stripe = stripe.AsyncStripeClient(api_key="sk_xxxxxx")
  1. 调整异步调用写法,把await放在方法调用前
async def fetch_payments():
    # 正确写法:变量在左,await + 异步调用在右
    payments = await async_stripe.PaymentIntent.list(limit=10000)
    return payments

# 测试运行异步函数
if __name__ == "__main__":
    result = asyncio.run(fetch_payments())
    print(result)

如果你使用的是不支持异步客户端的旧版本Stripe SDK,可以用sync_to_async工具包装原同步方法实现异步调用:

from asgiref.sync import sync_to_async
import stripe

stripe.api_key = "sk_xxxxxx"

async def fetch_payments():
    payments = await sync_to_async(stripe.PaymentIntent.list)(limit=10000)
    return payments

注意上述异步代码必须运行在异步上下文中,比如FastAPI/Starlette的异步路由、Django 3.1+的异步视图,或者通过asyncio.run主动启动异步事件循环。

内容的提问来源于stack exchange,提问作者Admia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:45:07