包含近2000行的csv文件。
我想逐行解析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')
但是上面代码的问题是我们需要提到字段名来解析CSV。因为我有超过2000行,这不是一个可行的解决方案。
有人能建议如何逐行解析CSV文件并将其转换为JSON而无需指定字段名吗?
4条答案
按热度按时间im9ewurl1#
Python CSV转JSON
要在Python中将CSV转换为JSON,请执行以下步骤:
1.初始化Python列表。
1.使用
csv.DictReader()
函数读取CSV文件的行。1.将每一行转换为一个字典。将字典添加到步骤1中创建的Python列表中。
1.使用
json.dumps()
将Python列表转换为JSON字符串。1.您可以将JSON字符串写入JSON文件。
data.csv
Python程序
输出:data.json
kkbh8khc2#
你可以试试这个:
我转换了一个200MB的文件,有600K+行,它工作得很好。
6g8kf2rb3#
假设您的CSV有一个标题行:只需从DictReader中删除fieldnames参数
如果省略fieldnames参数,则文件f的第一行中的值将用作fieldnames。
vbkedwbf4#
如果你对你的解决方案很满意,唯一困扰你的是如何输入列标题的‘长‘列表,我建议你使用类似www. example. com()的东西阅读CSV的第一(标题)行reader.next,
然后使用
str.split(',')
将所获得的字符串拆分为列表。您得到的列表可以被馈送到
你的代码行。