Python CSV 转 JSON
要在 Python 中将 CSV 转换为 JSON,请执行以下步骤:
- 初始化 Python 列表。
- 使用
csv.DictReader()函数读取CSV文件的行。
- 将每一行转换为字典。将字典添加到第 1 步中创建的 Python 列表中。
- 使用
json.dumps() 将 Python 列表转换为 JSON 字符串。
- 您可以将 JSON 字符串写入 JSON 文件。
数据.csv
- 对于测试,我在 csv 文件中使用复制/粘贴创建了 100.000 行,而使用 Apple's M1 Chip 的整个转换过程大约需要半秒,而给出的示例只需要 0.0005 秒。
column_1,column_2,column_3
value_1_1,value_1_2,value_1_3
value_2_1,value_2_2,value_2_3
value_3_1,value_3_2,value_3_3
Python 程序
import csv
import json
import time
def csv_to_json(csvFilePath, jsonFilePath):
jsonArray = []
#read csv file
with open(csvFilePath, encoding='utf-8') as csvf:
#load csv file data using csv library's dictionary reader
csvReader = csv.DictReader(csvf)
#convert each csv row into python dict
for row in csvReader:
#add this python dict to json array
jsonArray.append(row)
#convert python jsonArray to JSON String and write to file
with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
jsonString = json.dumps(jsonArray, indent=4)
jsonf.write(jsonString)
csvFilePath = r'data.csv'
jsonFilePath = r'data.json'
start = time.perf_counter()
csv_to_json(csvFilePath, jsonFilePath)
finish = time.perf_counter()
print(f"Conversion 100.000 rows completed successfully in {finish - start:0.4f} seconds")
输出:data.json
Conversion 100.000 rows completed successfully in 0.5169 seconds
[
{
"column_1": "value_1_1",
"column_2": "value_1_2",
"column_3": "value_1_3"
},
{
"column_1": "value_2_1",
"column_2": "value_2_2",
"column_3": "value_2_3"
},
{
"column_1": "value_3_1",
"column_2": "value_3_2",
"column_3": "value_3_3"
}
]