GET请求返回数据存入Pandas DataFrame时报numpy dtype相关TypeError求助
报错原因
这个TypeError由两个常见原因触发:
- 你调用的是OData协议接口,返回的JSON结构外层包裹了元数据字段,实际的医院业务数据存储在
value字段中,直接把完整返回结果传入pd.DataFrame()会导致pandas无法解析混合类型的嵌套结构,触发dtype解析错误。 - 本地安装的pandas和numpy版本存在兼容性问题。
调整代码
首先验证返回结构,再提取对应字段生成DataFrame即可:
import requests import pandas as pd url = "https://api.defhc.com/v5/odata-v4/Hospitals?$top=500" res = requests.get(url,headers={"Authorization": "Bearer %s" % access_token}).json() # 先确认返回结构,正常OData返回会包含value字段 print(res.keys()) # 提取value字段的业务数组生成DataFrame df = pd.DataFrame(res['value'])
异常兜底方案
如果提取value字段后仍报相同错误,说明是pandas和numpy版本不匹配,执行以下命令更新到兼容稳定版本即可:
pip install --upgrade pandas numpy
内容的提问来源于stack exchange,提问作者Eli Santibanez
相关产品推荐
相关产品推荐

