如何将API的GET请求响应转换为pandas DataFrame并提取嵌套内容
解决方案
直接提取API返回JSON中的leases字段传入DataFrame构造函数即可,是最简洁的实现方式:
r = requests.request("GET", get_url, headers=headers, data=payload) df = pd.DataFrame(r.json()["leases"])
如果leases下的单条记录存在深层嵌套字段需要展平,可以使用目前pandas官方支持的pd.json_normalize方法:
注:你提到的已弃用的是旧版本位于
pandas.io.json路径下的json_normalize,目前该方法已经迁移至pandas顶层命名空间,属于正式可用的公开API,不存在弃用问题。
# 适用于有嵌套字段需要展开的场景 df = pd.json_normalize(r.json()["leases"])
如果需要做异常兼容,避免响应中不存在leases字段时报错,可以加一层校验逻辑:
resp_data = r.json() if "leases" in resp_data and isinstance(resp_data["leases"], list): df = pd.DataFrame(resp_data["leases"]) else: # 可自定义异常场景的处理逻辑,比如生成空DataFrame df = pd.DataFrame()
内容的提问来源于stack exchange,提问作者ariana20
相关产品推荐
相关产品推荐

