Rus*_*ame 0 python csv parsing json
我想逐行解析 CSV 文件并将其转换为 JSON 并通过 websocket 发送。
我在网上找到了一些将 CSV 转换为 JSON 的代码,如下所示:
import csv
import json
csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')
fieldnames = ("FirstName","LastName","IDNumber","Message")
reader = csv.DictReader( csvfile, fieldnames)
for row in reader:
json.dump(row, jsonfile)
jsonfile.write('\n')
Run Code Online (Sandbox Code Playgroud)
但是上面代码的问题是我们需要提到字段名称来解析CSV。由于我有 2000 多行,这不是一个可行的解决方案。
谁能建议如何逐行解析 CSV 文件并将其转换为 JSON 而不指定字段名?
要在 Python 中将 CSV 转换为 JSON,请按照下列步骤操作:
csv.DictReader()函数读取 CSV 文件的行。json.dumps()。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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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")
Run Code Online (Sandbox Code Playgroud)
Conversion 100.000 rows completed successfully in 0.5169 seconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4152 次 |
| 最近记录: |