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

Python如何将Plaid银行API响应加载为pandas DataFrame

问题根因

Plaid 8.0+版本的Python SDK返回的响应结果是预定义的模型类实例,而非原生Python字典。虽然该类实现了__getitem__方法支持response['accounts']式的取值,但pd.json_normalize要求输入为原生字典/列表结构,无法识别自定义模型对象的内部结构,因此触发NotImplementedError报错。

最优实现方案

不需要做字符串替换这类鲁棒性差的操作,也不需要冗余的序列化再反序列化流程,直接调用响应实例自带的to_dict()方法转为原生字典后传入json_normalize即可:

request = AccountsBalanceGetRequest(access_token=token)
response = client.accounts_balance_get(request)
# 直接调用SDK内置的to_dict方法转原生字典
df = pd.json_normalize(response.to_dict(), record_path=['accounts'])

如果仅需要处理accounts字段的内容,也可以直接提取该字段做转换,性能更优:

df = pd.json_normalize([account.to_dict() for account in response['accounts']])

补充说明

你之前验证的json.loads(json.dumps(response.to_dict()))方案本质是为了确保所有嵌套结构都转为原生Python类型,绝大多数场景下response.to_dict()已经能输出完全符合要求的原生字典,只有当SDK版本存在特殊嵌套模型未被to_dict()递归转换的极端情况时,才需要额外做一次序列化+反序列化操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:39:03