如何将嵌套列表格式JSON API响应转换为pandas DataFrame
解决方案
不需要使用json_normalize,这个API返回的是三层嵌套的数组结构,直接按以下流程处理即可:
- 先清理原始响应字符串的冗余字符:去掉首尾的单引号、末尾换行符,用标准json库解析为Python嵌套列表
- 提取核心配对数据:原始结构外层额外包裹了两层列表,取索引
[0][0]就能得到所有[字段值, 字段名]格式的二维配对列表 - 直接构造DataFrame:将配对列表传入DataFrame构造函数,调整列名和列顺序即可得到你要的两列表格
完整可运行代码:
import json import pandas as pd # 原始API响应文本 raw_response = '[[["gam ind us tries","house"],["1530","house_number"],["jamacha rd ste","road"],["pel cajon","city"],["ca","state"],["92019","postcode"],["us","country"]]]\n' # 解析JSON结构 parsed_list = json.loads(raw_response.strip().strip("'")) # 生成DataFrame,调整列顺序为字段在前、值在后 df = pd.DataFrame(parsed_list[0], columns=["值", "字段"])[["字段", "值"]] print(df)
运行输出结果:
字段 值 0 house gam ind us tries 1 house_number 1530 2 road jamacha rd ste 3 city pel cajon 4 state ca 5 postcode 92019 6 country us
如果后续接口返回的嵌套层数有变动,只需要调整解析后列表的索引层级,拿到所有[字段值, 字段名]格式的二维列表,就可以直接用上述方法构造DataFrame,不需要额外做键值对格式转换。
内容的提问来源于stack exchange,提问作者kiran u
相关产品推荐
相关产品推荐

