[英]Converting CSV data from file to JSON
我有一个csv文件,其中包含以','分隔的csv数据。 我正在尝试将其转换为json格式。 为此,我想先提取标题。 但是,我无法区分标题和下一行。
这是csv文件中的数据:
Start Date ,Start Time,End Date,End Time,Event Title 9/5/2011,3:00:00 PM,9/5/2011,,Social Studies Dept. Meeting 9/5/2011,6:00:00 PM,9/5/2011,8:00:00 PM,Curriculum Meeting
我也尝试过csvreader,但是我遇到了同样的问题。 基本上不区分Event Title
和下一行的日期。
with open(file_path, 'r') as f:
first_line = re.sub(r'\s+', '', f.read())
arr = []
headers = []
for header in f.readline().split(','):
headers.append(header)
for line in f.readlines():
lineItems = {}
for i,item in enumerate(line.split(',')):
lineItems[headers[i]] = item
arr.append(lineItems)
print(arr)
print(headers)
jsonText = json.dumps(arr)
print(jsonText)
所有这三个打印语句在下面给出空结果。
[]
['']
[]
我希望jsonText是键值对的json。
在Python中,每个文件都有一个标记,用于跟踪您在文件中的位置。 调用read()
,您已经读完了整个文件,以后所有的read或readline调用都将不返回任何内容。
因此,只需删除涉及first_line
的行。
使用csv.DictReader
获取字典列表(每一行都是字典),然后对其进行序列化。
import json
import csv
with open(csvfilepath) as f:
json.dump(list(csv.DictReader(f)), jsonfilepath))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.