Python 如何将大量csv转换为json
下面是将一个csv文件转换为json的代码 列出目录中的所有文件 [data1.csv、data2.csv、data.csv] 下面是将一个文件转换为json的代码。就像我需要循环所有文件一样Python 如何将大量csv转换为json,python,json,csv,Python,Json,Csv,下面是将一个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):
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')
导入全局
作为pd进口熊猫
对于glob.glob('//*.csv')中的csv_f:
将open(f'{csv_f.replace(“.csv”,“.json”)}',“w”)作为f:
pd.read\u csv(csv\u f).设置索引('id'))\
.to_json(f,orient='index')
@WeavingBird1917有很多文件。我不想更改csvFilePath和jsonFilePatheverytime@WeavingBird1917,它不是一个输入错误,而是一个变量名。要在目录中的文件上进行迭代,您可以使用os.listdir()
(仅限当前目录)或os.walk()
(递归目录)。您能澄清您的问题吗?如果您可以转换一个文件,是什么阻止您转换一个又一个文件?显然,您已经知道如何使用for
循环,在每个文件名上循环调用make_json
有什么困难?看看str.replace()
函数,您可以用.json
替换名称的.csv
部分。