Python 自动将多个json文件(具有不同信息)读取和保存到不同的数据帧

Python 自动将多个json文件(具有不同信息)读取和保存到不同的数据帧,python,json,pandas,Python,Json,Pandas,我在一个文件夹中有几个json文件,每个文件都有不同的形状(行数和列数)和信息 我有以下代码来打开json文件并将其保存到数据库: with open('f_fruit.json', 'r') as f: data = json.load(f) df_fruit = pd.DataFrame(data['fruit']) 最后,我希望有不同的数据帧,每个json文件对应一个: df_fruit df_clothes df_games 考虑到文件名和信息不遵循模式,自动化此代码的

我在一个文件夹中有几个json文件,每个文件都有不同的形状(行数和列数)和信息

我有以下代码来打开json文件并将其保存到数据库:

with open('f_fruit.json', 'r') as f:
    data = json.load(f)

df_fruit = pd.DataFrame(data['fruit'])
最后,我希望有不同的数据帧,每个json文件对应一个:

df_fruit

df_clothes

df_games

考虑到文件名和信息不遵循模式,自动化此代码的最佳方法是什么?可能吗

假设您的文件按照相同的逻辑命名,我将执行以下操作:

files = ['f_fruit.json','f_clothes.json','f_games.json'] #you can use os.walk to get a list of files from a specific folder

for file_name in files:
    col_name = file_name.split('.')[0][2:]
    with open(file_name, 'r') as f:
        data = json.load(f)
    var_name = 'df_{}'.format(col_name)
    globals()[var_name] = pd.DataFrame(data[col_name])
然而,如果

文件名和信息不遵循模式

那么就没有简单的方法来实现自动化。你需要一个模式

这里是您可能感兴趣的部分,即如何使用
globals()
从内存中已有的值创建变量


您可能需要考虑使用字典,其中键是数据帧名称,值是数据帧。它几乎工作。我收到以下错误:文件“”,第8行globals()[f'df_{var_name}]=pd.DataFrame(data[var_name])^SyntaxError:invalid syntaxer您的Python版本是什么?我使用Python 2。@Thabra请立即尝试。谢谢!由于最后一行,我得到了一个错误:-->9 globals()[var\u name]=pd.DataFrame(data[col\u name])TypeError:列表索引必须是整数,而不是str
>>> col_name = 'fruit'
>>> var_name = 'df_{}'.format(col_name)
>>> globals()[var_name] = 'some value'
>>> df_fruit
'some value'