如何将数组嵌套型JSON转换后存入Python DataFrame?
问题:JSON结构转换并存入Python DataFrame
原始JSON结构:
{"Category_One": [["CAT_1_VALUE_LINE_ONE"], ["CAT_1_VALUE_LINE_TWO"]], "Category_Two": [["CAT_2_VALUE_LINE_ONE"], ["CAT_2_VALUE_LINE_TWO"]], "Category_Three": [["CAT_3_VALUE_LINE_ONE"], ["CAT_3_VALUE_LINE_TWO"]] }
需要转换为以下格式的JSON数组:
[ {"Category_One": "CAT_1_VALUE_LINE_ONE", "Category_Two": "CAT_2_VALUE_LINE_ONE", "Category_Three": "CAT_3_VALUE_LINE_ONE"}, {"Category_One": "CAT_1_VALUE_LINE_TWO", "Category_Two": "CAT_2_VALUE_LINE_TWO", "Category_Three": "CAT_3_VALUE_LINE_TWO"} ]
转换完成后存入Python DataFrame。
解决步骤
1. 解析并转换JSON结构
先将原始JSON中每个类别下的嵌套列表展开,提取实际值,再按索引把对应位置的元素组合成新字典,最终形成目标数组:
import json import pandas as pd # 加载并解析原始JSON raw_data = ''' {"Category_One": [["CAT_1_VALUE_LINE_ONE"], ["CAT_1_VALUE_LINE_TWO"]], "Category_Two": [["CAT_2_VALUE_LINE_ONE"], ["CAT_2_VALUE_LINE_TWO"]], "Category_Three": [["CAT_3_VALUE_LINE_ONE"], ["CAT_3_VALUE_LINE_TWO"]] } ''' parsed_data = json.loads(raw_data) # 展开嵌套列表,提取每个类别的值列表 cleaned_values = { key: [item[0] for item in parsed_data[key]] for key in parsed_data } # 生成目标JSON数组 result_array = [] for idx in range(len(cleaned_values["Category_One"])): result_array.append({ "Category_One": cleaned_values["Category_One"][idx], "Category_Two": cleaned_values["Category_Two"][idx], "Category_Three": cleaned_values["Category_Three"][idx] })
2. 转换为DataFrame
直接将转换后的数组传入pandas.DataFrame()即可:
df = pd.DataFrame(result_array) print(df)
运行后输出的DataFrame如下:
Category_One Category_Two Category_Three 0 CAT_1_VALUE_LINE_ONE CAT_2_VALUE_LINE_ONE CAT_3_VALUE_LINE_ONE 1 CAT_1_VALUE_LINE_TWO CAT_2_VALUE_LINE_TWO CAT_3_VALUE_LINE_TWO
内容的提问来源于stack exchange,提问作者user11934987
相关产品推荐
相关产品推荐

