我有大约 30 个 csv 文件,我正在尝试将它们并行转换为 json。转换正在发生,但需要相当长的时间。大约25分钟。每个文件将有 200 万条记录。下面是我的代码。我是 python 新手,您能否建议调整此代码的可能方法,以便加快转换时间。
import csv
import json
import os
import multiprocessing as mp
path = '<some_path>'
""" Multiprocessing module to generate json"""
total_csv_file_list = []
for filename in os.listdir(path):
total_csv_file_list.append(os.path.join(path,filename))
total_csv_file_list = list(filter(lambda x:x.endswith('.csv'), total_csv_file_list))
total_csv_file_list = sorted(total_csv_file_list)
print(total_csv_file_list)
def gen_json (file_list):
csvfile = open(file_list, 'r')
jsonfile = open((file_list.split('.')[0]+'.json'), 'w')
fieldnames = ("<field_names")
reader = list(csv.DictReader( csvfile, fieldnames))
json.dump(reader, jsonfile,indent=4)
try:
p_json = mp.Pool(processes=mp.cpu_count())
total_json_file_list = p_json.map(gen_json,total_csv_file_list)
finally:
p_json.close()
p_json.join()
print("done")