如何从Pandas DataFrame生成指定格式的JSON对象
解决方案
你的问题出在直接使用to_json()会生成字符串格式的JSON,且列名、结构都不符合预期。要得到目标格式,需要先调整列名、转换数据结构,再构造最终的JSON对象,具体步骤如下:
步骤1:调整列名
先把DataFrame的列名改成目标JSON里的键名:Year→year,Median_Home_Value→value。
步骤2:(可选)格式化数值类型
如果需要把整数型的浮点数(比如11973.0)转成整数,保留小数型数值不变,可以添加数值格式化逻辑。
步骤3:转换为字典列表
用to_dict('records')把DataFrame转成包含每个行数据的字典列表,这就是目标JSON里的数组内容。
步骤4:构造最终JSON结构
把字典列表放到median_home_value键下,再转成格式化的JSON字符串。
完整代码
import pandas as pd import json # 假设你的DataFrame是test_df # 重命名列名 renamed_df = test_df.rename(columns={ 'Year': 'year', 'Median_Home_Value': 'value' }) # 格式化数值:整数浮点数转int,其余保留原数值 def format_val(val): return int(val) if val.is_integer() else val renamed_df['value'] = renamed_df['value'].apply(format_val) # 转成字典列表 data_list = renamed_df[['year', 'value', 'type']].to_dict('records') # 构造目标JSON结构 final_json = { 'median_home_value': data_list } # 生成格式化的JSON字符串(indent参数控制缩进,更易读) print(json.dumps(final_json, indent=4, ensure_ascii=False))
输出示例
运行后会得到符合你要求的JSON:
{ "median_home_value": [ { "year": 2010, "value": 11973, "type": "analyzed" }, { "year": 2011, "value": 12500, "type": "analyzed" }, ... { "year": 2023, "value": 20941.344, "type": "predicted" } ] }
内容的提问来源于stack exchange,提问作者Wolfy
相关产品推荐
相关产品推荐

