如何将大量 csv 转换为 json

艾什

下面是将一个 csv 文件转换为 json 的代码

列出目录中的所有文件

[data1.csv、data2.csv、data.csv]

下面是将一个文件转换为 json 的代码。就像我需要循环所有文件

import csv 
import json 
import os
import glob

os.chdir(r'dir' )
result = glob.glob( '*.csv' )
print (result) 
def make_json(csvFilePath, jsonFilePath): 
      
    for i in result:
        data = {} 
        with open(csvFilePath, encoding='utf-8') as csvf: 
            csvReader = csv.DictReader(csvf) 
            for rows in csvReader: 
                key = rows['id'] 
                data[key] = rows 
        with open(jsonFilePath, 'w', encoding='utf-8') as jsonf: 
            jsonf.write(json.dumps(data, indent=4)) 
        csvFilePath =f"{i}"
        jsonFilePath =f"{i.split('.')[-2]}.json"
make_json(csvFilePath, jsonFilePath)

我有类似类型的文件需要转换为 json。在每个文件中id都是主键

那里有很多文件。我不想每次都更改 csvFilePath 和 jsonFilePath。

面临的问题?

  • 我的所有 json 文件都以 .csv.json
  • 最后一个文件名 data9.csv 没有转换为 json 并且 data2 转换为 data2.json 和 data2.csv.json 两次
苏珊特

这是一个方法,

import glob
import pandas as pd

for csv_f in glob.glob('/<file_path>/*.csv'):
    with open(f'{csv_f.replace(".csv", ".json")}', "w") as f:
        pd.read_csv(csv_f).set_index('id') \
            .to_json(f, orient='index')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章