使用python/panda将特定文件夹中的几个嵌套.json文件读取到excel中



我想将文件夹中的几个嵌套json文件读取到excel文件中。由于大多数.json文件彼此不同(每个文件中有不同的嵌套级别(,这也意味着excel文件中的一些列(值(显然需要是NaN。我用这段代码读取一个特定的文件没有问题,但一个接一个地读取10000需要一段时间。

import json 
import pandas as pd 
from pandas.io.json import json_normalize 
with open('file1.json','r') as f: #Here I want help, since i need to read 10 000 json files.
data = json.loads(f.read())
multiple_level_data = pd.json_normalize(data, record_path =['data'], errors='ignore', meta =['total-count'], meta_prefix='config_params_', record_prefix='dbscan_')
multiple_level_data.to_excel('file1converted.xlsx', index=False)

但是,如何修改我的python代码以读取文件夹中的所有json文件,而不仅仅是file1.json?

您可以尝试os.listdir():

import os
import json 
import pandas as pd 
from pandas.io.json import json_normalize 
for js in [x for x in os.listdir() if x.endswith('.json')]:
with open(js,'r') as f: 
data = json.loads(f.read())
multiple_level_data = pd.json_normalize(data, record_path =['data'], errors='ignore', meta =['total-count'], meta_prefix='config_params_', record_prefix='dbscan_')
multiple_level_data.to_excel(js+'converted.xlsx', index=False)

Wasif的上述解决方案运行良好,然而,我添加了这个以将其放入一个excel文件中。

df = pd.DataFrame()
for file in files:
if file.endswith('.xlsx'):
df = df.append(pd.read_excel(file, engine='openpyxl'), ignore_index=True) 
df.to_excel("AllJsonFilesInOneExcel.xlsx")

谢谢。

最新更新