通过Python调用Plaid API创建Link Token时遇JSON解析错误求助
解决Plaid API创建Link Token时的「Invalid Body」错误
核心排查方向
- 请求体格式校验:确保构造的请求数据是标准JSON格式,必须满足:
- 所有字符串、键名统一用双引号(
"),禁止使用单引号(') - 结构末尾不能存在多余的逗号
- 特殊字符(如引号、反斜杠)需正确转义
- 所有字符串、键名统一用双引号(
- 请求头必设项:发送请求时必须携带
Content-Type: application/json头,这是API解析JSON请求体的前提,很多新手会遗漏这一步 - 变量替换检查:替换为
xxx的敏感信息(client_id、secret等)不能是空值,也不能包含未转义的特殊字符 - API版本兼容:确认请求参数与当前使用的Plaid API版本匹配,部分旧版参数格式已被废弃
针对代码截图的补充建议
从你提供的代码截图来看,重点核查以下几点:
plaid_client初始化时的环境配置(sandbox/development/production)是否与你的API密钥对应create_link_token方法的参数结构,比如user对象中的client_user_id是否为有效非空字符串,有没有拼写错误- 若未使用官方SDK而是手动构造HTTP请求,必须用
json.dumps()序列化数据,禁止手动拼接JSON字符串
极简测试验证方案
先运行以下极简代码,排除参数冗余导致的问题:
import plaid from plaid.api import plaid_api # 初始化配置 configuration = plaid.Configuration( host=plaid.Environment.Sandbox, api_key={ 'clientId': '你的真实client_id', 'secret': '你的真实secret', } ) api_client = plaid.ApiClient(configuration) plaid_client = plaid_api.PlaidApi(api_client) # 构造最小化请求参数 request = plaid.CreateLinkTokenRequest( user={'client_user_id': '唯一用户标识字符串'}, client_name='你的应用名称', products=['auth'], country_codes=['US'], language='en' ) # 发起请求 response = plaid_client.create_link_token(request) print(response)
如果该代码能正常运行,再逐步添加你原代码中的参数,定位具体出错的参数项。
内容的提问来源于stack exchange,提问作者Johnny
相关产品推荐
相关产品推荐

