我在一个文件夹中有几个json文件,每个文件都有不同的形状(行数和列数)和信息。
我有以下代码打开并将json文件保存到pandas df:
with open('f_fruit.json', 'r') as f:
data = json.load(f)
df_fruit = pd.DataFrame(data['fruit'])
最后,我想拥有不同的pandas数据帧,每个json文件一个:
df_fruit
df_clothes
df_games
考虑到文件名和信息不遵循模式,自动执行此代码的最佳方法是什么?可能吗?
答案 0 :(得分:0)
假设您的文件按照相同的逻辑命名,我将执行以下操作:
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()
从内存中的值创建变量。
>>> col_name = 'fruit'
>>> var_name = 'df_{}'.format(col_name)
>>> globals()[var_name] = 'some value'
>>> df_fruit
'some value'