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

如何使用pandas读取JSON文件并生成指定列格式的DataFrame

解决方案

核心问题说明:原有代码直接对根层级的字典做标准化处理,根节点的键(如getYearsListOverview)会被自动作为列名前缀,嵌套层级的字段也会携带父级前缀,只需调整数据处理逻辑即可。


方法1:无需修改JSON结构,仅调整代码

完整可运行代码如下:

import pandas as pd
import json
import os

# 读取JSON文件
with open(os.path.join(filepath, json_file), 'r', encoding='utf-8') as f:
    j_f = json.load(f)

processed_list = []
for item in j_f.values():
    # 将sp_input_params下的字段提取到首层
    item.update(item.pop('sp_input_params', {}))
    # 将customised_response_template下的字段提取到首层
    item.update(item.pop('customised_response_template', {}))
    processed_list.append(item)

# 生成DataFrame
df = pd.DataFrame(processed_list)

# 可选:严格过滤出要求的列,排除多余字段
required_cols = [
    'sp_name',
    'req_url_query_params',
    'req_body_params',
    'sp_output_datasets',
    'number_of_output_datasets_for_customized_template',
    'performance_value_list',
    'rankings_table',
    'level_values',
    'page_name'
]
df = df[required_cols]

方法2:修改JSON结构简化处理

如果允许调整JSON结构,可以直接把外层字典改为数组,同时把嵌套的sp_input_params、customised_response_template字段拆到每个对象的首层,修改后结构参考:

[
    {
        "sp_name": "analytics.year_overview_drop_down",
        "req_url_query_params": [],
        "req_body_params": [],
        "sp_output_datasets": [],
        "page_name": "home"
    },
    {
        "sp_name": "analytics.get_performance_ranking_data",
        "req_url_query_params": [["@scroll_index", "index"]],
        "req_body_params": [["@event_type_id", "event_type_id"],["@season", "season"],["@athlete_guid", "athlete_guid"]],
        "sp_output_datasets": [],
        "number_of_output_datasets_for_customized_template": 4,
        "performance_value_list": [],
        "rankings_table": [],
        "level_values": [],
        "page_name": "performancereport"
    }
]

修改后处理代码可简化为:

with open(os.path.join(filepath, json_file), 'r', encoding='utf-8') as f:
    j_f = json.load(f)
df = pd.DataFrame(j_f)

内容的提问来源于stack exchange,提问作者pythondumb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:48:03