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

如何自动化读取无规则JSON文件至不同Pandas DataFrame?

实现JSON文件自动转为对应Pandas DataFrame的方案

完全可行!针对你这种文件名和内容无规律的情况,我给你两种实用的方法,按需选择就行:

方法一:自动生成独立的DataFrame变量(比如df_fruit、df_clothes)

这种方法会直接帮你创建和文件名对应的全局变量,完全符合你想要的效果。步骤如下:

首先导入需要的库:

import os
import json
import pandas as pd

然后设置你的JSON文件夹路径,替换成你实际的路径:

json_dir = "./your_json_files"  # 改成你的JSON文件所在文件夹

核心代码:

for file_name in os.listdir(json_dir):
    # 只处理JSON文件
    if file_name.endswith(".json"):
        # 提取文件名里的标识(比如从f_fruit.json里拿到fruit)
        # 这里可以根据你的实际文件名格式调整,比如如果文件名是fruit.json,就改成file_name.split('.')[0]
        df_identifier = file_name.split('.')[0].split('_')[-1]
        # 生成DataFrame的变量名,比如df_fruit
        df_var_name = f"df_{df_identifier}"
        
        # 读取JSON文件
        file_path = os.path.join(json_dir, file_name)
        with open(file_path, 'r', encoding='utf-8') as f:
            json_data = json.load(f)
        
        # 转换成DataFrame,这里注意:如果你的JSON里的目标数据键和df_identifier一致(比如f_fruit.json里的键是fruit),就用下面的代码
        # 如果键不一致,你可以先打印json_data.keys()看看结构再调整
        target_df = pd.DataFrame(json_data[df_identifier])
        
        # 动态创建全局变量
        globals()[df_var_name] = target_df

运行完之后,你就可以直接用df_fruit、df_clothes这些变量了。

方法二:用字典统一存储所有DataFrame(更推荐)

如果你的JSON文件比较多,用独立变量可能会导致命名混乱,这种情况下用字典存储会更整洁,管理起来也方便:

import os
import json
import pandas as pd

json_dir = "./your_json_files"
df_collection = {}

for file_name in os.listdir(json_dir):
    if file_name.endswith(".json"):
        df_identifier = file_name.split('.')[0].split('_')[-1]
        file_path = os.path.join(json_dir, file_name)
        
        with open(file_path, 'r', encoding='utf-8') as f:
            json_data = json.load(f)
        
        df_collection[df_identifier] = pd.DataFrame(json_data[df_identifier])

# 调用的时候直接用df_collection['fruit']、df_collection['clothes']就行

注意事项

  • 如果某个JSON文件的结构和你原来的不一样(比如数据不是嵌套在和文件名对应的键里),你可以先跑下面的代码查看每个文件的结构:
for file_name in os.listdir(json_dir):
    if file_name.endswith(".json"):
        file_path = os.path.join(json_dir, file_name)
        with open(file_path, 'r', encoding='utf-8') as f:
            json_data = json.load(f)
        print(f"文件{file_name}的顶层键:{list(json_data.keys())}")

根据输出调整pd.DataFrame()里的参数就行,比如如果是直接的列表数据,就改成pd.DataFrame(json_data)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:38:52