我的目标是将文件夹中的多个csv文件更改为JSON。
首先,我需要列出我的csv文件for file in os.listdir("C:/Users/folder_to_csv"):
filename = os.fsdecode(file)
if filename.endswith(".csv"):
#check if csv files are listed correctly
print(os.path.join("C:/Users/folder_to_csv", filename))
这样,我就可以调用该文件夹中的csv文件了。结果:C:/Users/folder_to_csvfile_1.csv C:/Users/folder_to_csvfile_2.csv C:/Users/folder_to_csvfile_3.csv
然后,我想使用'csvlist'中的所有csv文件到jsonObj
,但是由于某种原因,我的代码只使用第一个文件(C:/Users/folder_to_csvfile_1.csv)
这是我到目前为止所尝试的:
import json
import csv
import requests
import threading
import os
for file in os.listdir("C:/Users/folder_to_csv"):
filename = os.fsdecode(file)
if filename.endswith(".csv"):
csvlist = os.path.join("C:/Users/folder_to_csv", filename)
data = {}
def main():
#loop csv list so my codes can read all csv files
length = len(csvlist)
for i in range(length):
i += 1
path = csvlist
#switch csv to json
with open(path, mode='r') as f:
reader = csv.DictReader(f)
processdata = [row for row in reader]
dlist = processdata
jsonObj = json.dumps(dlist)
})
print(jsonObj)
main()
在初始循环中,继续重新定义csvlist变量。我猜你想要一个清单吧?然后创建一个初始的空列表并将其追加,而不是重新定义
csvlist = []
...
csvlist.append(os.path.join("C:/Users/folder_to_csv", filename))