如何在Python中将多个JSON响应合并为单个DataFrame
解决方案
你的问题核心是两点:一是API返回的每个条目里output是双层嵌套列表,二是如果分多次请求获取单独字典,未先汇总成列表就会生成多个独立DataFrame。以下是两种可行的处理方式:
方法一:先标准化再扁平化嵌套列表
如果已经把所有API响应结果收集到一个列表中(比如data),可以先通过pd.json_normalize生成初始DataFrame,再提取output字段里的内层一维列表:
import pandas as pd # 模拟收集到的API响应数据 data = [{'output':[[2,3,4]]}, {'output':[[6,3,7]]}] # 生成初始DataFrame df = pd.json_normalize(data) # 提取output字段中的内层列表 df['output'] = df['output'].str[0]
方法二:预处理数据后再标准化
在传入pd.json_normalize之前,先把每个字典里的双层output列表展开,直接保留内层的一维列表,再生成DataFrame:
import pandas as pd data = [{'output':[[2,3,4]]}, {'output':[[6,3,7]]}] # 预处理每个条目,展开嵌套列表 processed_data = [{'output': item['output'][0]} for item in data] # 生成目标DataFrame df = pd.json_normalize(processed_data)
两种方法最终都会得到你期望的结果:
output 0 [2,3,4] 1 [6,3,7]
如果你的API是分多次请求返回单个字典,记得先把每次的response.json()结果追加到一个列表里,再用上述方法处理,避免生成多个独立的DataFrame。
内容的提问来源于stack exchange,提问作者sarandonga2912
相关产品推荐
相关产品推荐

