使用Pandas解析REST API返回的嵌套JSON转DataFrame报KeyError如何解决
报错原因
你报错的核心原因是没有正确提取接口返回JSON里的表结构数据:接口返回的tables数组下的每个元素才是完整的表对象,包含columns(表头定义)和rows(行数据)两个核心字段,你直接把tables数组转DataFrame的话,生成的df列是name、columns、rows三个字段,自然找不到ApiId、count_这两个列。
修正后代码
import json import pandas as pd from tabulate import tabulate # 原有接口响应解析逻辑保持不变 analytics_data = response_analytics.text json_dict = json.loads(analytics_data) # 核心修正逻辑:提取目标表的表头和行数据 # 取tables数组里的第一张表,如有多张表可遍历处理 target_table = json_dict["tables"][0] # 从columns字段提取所有列名 col_names = [col["name"] for col in target_table["columns"]] # 用行数据+列名生成DataFrame df = pd.DataFrame(target_table["rows"], columns=col_names) # 后续筛选、重命名、打印逻辑保持不变即可 cols_to_keep = ["ApiId", "count_"] df_final = df[cols_to_keep] df_final = df_final.rename(columns={"ApiId": "API Name", "count_": "Total requests"}) print( tabulate( df_final, showindex=False, headers=df_final.columns, tablefmt="psql", numalign="left" ) )
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

