如何迭代JSON输出并提取所需记录生成指定格式DataFrame
JSON转指定格式DataFrame解决方案
原有代码问题说明
- 列名在循环内重复追加,导致列名列表冗余、命名不符合预期
- 所有行数据未按行拆分,全部存入同一个一维列表,生成DataFrame时结构错误
修复后实现代码
import pandas as pd # 你传入的固定queue_id queue_id = 'a72dba75-0bc6-4a65-b120-8803364f8dc3' # 提前按要求定义列名,避免循环追加导致的冗余问题 columns = ['queue_id', 'nOffered_count', 'nOffered_sum', 'interval_start', 'interval_end'] # 存储每行数据的列表 row_list = [] if queryResult.get('results'): # 遍历结果集 for res in queryResult['results']: for data_item in res['data']: # 拆分时间区间为开始和结束 interval_start, interval_end = data_item['interval'].split('/') # 遍历指标项 for metric in data_item['metrics']: # 组装单条记录 single_row = [ queue_id, metric['stats']['count'], metric['stats']['sum'], interval_start, interval_end ] row_list.append(single_row) # 生成符合要求的DataFrame df = pd.DataFrame(row_list, columns=columns)
代码调整说明
如果你拿到的query_result是解析后的对象而非字典,把代码中所有xxx['yyy']格式的字典访问改为xxx.yyy的属性访问即可,其余逻辑不变。如果后续需要新增其他指标,只需要在columns中按{指标名}_{统计项}的规则新增对应列,同步调整single_row的组装逻辑即可兼容。
内容的提问来源于stack exchange,提问作者Shivika
相关产品推荐
相关产品推荐

