首页 > 解决方案 > 将 CSV 数据从文件转换为 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。

标签: pythonjsoncsv

解决方案


在 Python 中,每个文件都有一个标记,用于跟踪您在文件中的位置。一旦你调用read(),你已经阅读了整个文件,并且所有未来的 read 或 readline 调用都不会返回任何内容。

因此,只需删除涉及first_line.


推荐阅读