如何在Python中正确加载JSON文件并生成指定列的DataFrame?
解决JSON加载为多列DataFrame的问题
问题原因
你的JSON结构外层包含一个faturamento键,其对应的值才是目标数据数组。直接使用pd.read_json()会将整个外层对象解析为单列表格,导致所有字段被嵌套在同一列中。
解决方案
方法1:读取JSON后提取目标数组再转DataFrame
先通过json.load()读取完整JSON,提取faturamento对应的数组,再传入pd.DataFrame()生成多列表格:
import json import pandas as pd # 读取JSON文件并提取目标数组 with open('faturamento.json') as f: raw_data = json.load(f) df = pd.DataFrame(raw_data['faturamento'])
方法2:使用pd.json_normalize直接解析嵌套结构
可以结合read_json和json_normalize一步完成解析:
import pandas as pd df = pd.json_normalize(pd.read_json('faturamento.json')['faturamento'])
数据类型修正
生成DataFrame后,还需要修正字段的类型:
fat字段是带空格的字符串,需转为整数:df['fat'] = df['fat'].str.strip().astype(int)business_day是大写的字符串布尔值,需转为布尔类型:df['business_day'] = df['business_day'].str.lower().astype(bool)
执行完以上步骤后,你就能得到包含day、fat、business_day三列的标准DataFrame。
内容的提问来源于stack exchange,提问作者Bruno Sanfins
相关产品推荐
相关产品推荐

