如何用json_normalize展开嵌套JSON,提取shipmentItems子字段到DataFrame
提取嵌套JSON数组字段到DataFrame独立列的解决方案
我来帮你搞定这个问题!你现在遇到的是json_normalize处理嵌套数组的常见场景,只要调整一下参数就能轻松把shipmentItems里的字段提取成独立列。
解决方案代码
import pandas as pd import json # 解析JSON数据(假设r.text是原始响应文本,且外层包含"shipments"键) parsed_data = json.loads(r.text) # 使用json_normalize展开数组并保留所需字段 df = pd.json_normalize( parsed_data['shipments'], record_path='shipmentItems', # 指定需要展开的数组字段 meta=[ 'shipmentDate', 'shipmentId', 'shipmentReference', ['transport', 'transportId'] # 保留嵌套的transportId字段 ] ) print(df.head())
代码说明
record_path='shipmentItems':告诉json_normalize要把这个数组里的每个对象拆分成单独的行,自动提取里面的orderId和orderItemId作为独立列。meta参数:用来指定需要保留的顶层非数组字段,对于transport.transportId这种嵌套字段,用列表['transport', 'transportId']的形式精准定位即可。- 哪怕
shipmentItems数组里包含多个对象,这个方法也能自动把每个对象对应到相同的顶层字段值,生成正确的多行数据。
内容的提问来源于stack exchange,提问作者Raf Rasenberg
相关产品推荐
相关产品推荐

