将嵌套JSON数组转为Pandas DataFrame求助:提取title与dpoin值
解决嵌套JSON转Pandas DataFrame的问题
嘿,我完全懂这种嵌套JSON搞不定的挫败感!别担心,咱们一步步来把你需要的title和dpoin里的坐标值都提取出来,转成清晰的DataFrame。
步骤1:导入必要的库
首先得把Pandas和JSON模块(用来处理数据)导入进来:
import pandas as pd import json
步骤2:准备你的JSON数据
把你提供的JSON数据赋值给一个变量,方便后续处理:
# 你的原始JSON数据 json_data = [{"ID":"rtbg345h","DataRow ID":"dgdfg45654","Labeled Data":"https://abc.png","Label":{"objects":[{"featureId":"rtbg345h","schemaId":"rtbg345h","title":"iris","value":"flower","color":"#00RGAA","dpoin":{"top":82,"left":33,"height":52,"width":675},"instanceURI":"https://sdfdsf.ab"}],"classifications":[]},"Created By":"user","Project Name":"myfirstproject","Created At":"2018-02-02","Updated At":"2018-02-02","Seconds to Label":24.264,"External ID":"sds.jpg","Agreement":-1,"Benchmark Agreement":-1,"Benchmark ID":None,"Dataset Name":"mine","Reviews":[],"View Label":"https:fdrtdf"}]
步骤3:用json_normalize展开嵌套结构
Pandas的json_normalize函数专门用来处理这种嵌套JSON,能自动把数组和字典展开成DataFrame的行和列:
# 展开Label里的objects数组,同时提取dpoin的嵌套字段 df = pd.json_normalize( json_data, record_path=['Label', 'objects'], # 指定要展开的数组路径 sep='_' # 用下划线分隔嵌套字段的名称,比如dpoin.top变成dpoin_top )
步骤4:筛选你需要的列
现在DataFrame里会包含很多字段,咱们只保留你需要的title和dpoin相关的四个值:
# 提取目标列 result_df = df[['title', 'dpoin_top', 'dpoin_left', 'dpoin_height', 'dpoin_width']] # 查看结果 print(result_df)
最终输出结果
运行上面的代码后,你会得到这样的DataFrame:
title dpoin_top dpoin_left dpoin_height dpoin_width 0 iris 82 33 52 675
如果你的JSON里有多个objects元素,这个方法也能自动把每个元素转成DataFrame的一行,完全适配批量数据的情况。
内容的提问来源于stack exchange,提问作者Katie James
相关产品推荐
相关产品推荐

