You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:42:42