pandas.json_normalize无法遍历JSON所有层级的扁平化问题求解
嵌套JSON全层级扁平化实现方案
核心是给json_normalize正确配置record_path(指定最内层待展开的数组路径)和meta(指定需要保留的上层公共字段),你的JSON结构嵌套路径为data → Responses → lines → vehiclePositions,最内层的单条记录存放在vehiclePositions数组中,调整后代码如下:
import pandas as pd import json # 建议用with语句管理文件句柄,避免资源泄露 with open("vp1.json", "r", encoding="utf-8") as f: json_obj = json.load(f) df = pd.json_normalize( data=json_obj["data"], # 逐层写最内层待展开数组的路径 record_path=["Responses", "lines", "vehiclePositions"], # 填写需要保留的上层字段,嵌套字段按层级写数组路径 meta=[ # 根层级的time字段 "time", # lines层级的lineId字段 ["Responses", "lines", "lineId"] ], # 可选配置:自定义层级字段的分隔符,默认是英文句号 sep="_" )
执行后生成的DataFrame每一行对应一条车辆位置记录,包含字段:time、lineId、directionId、distanceFromPoint、pointId,实现全层级扁平化。
如果后续有新增的嵌套层级,只要在record_path中补充对应路径,在meta中添加需要保留的上层字段即可。
内容的提问来源于stack exchange,提问作者Abdel
相关产品推荐
相关产品推荐

