通过结构化范围将csv解析为python字典

时间:2018-06-25 15:07:32

标签: python csv parsing

我有一个csv文件,该文件的信息范围转储到行中并以逗号分隔。每行是单独的一行,记录集由开始记录(具有唯一ID)和停止记录(匹配ID)的行“预订”。记录书签之间的数据各不相同,没有可重复性。

StartRecord, ID
name, value, other
name, value,value,value
EndRecord, ID
StartRecord, ID
name, value, other
something, another, another, something new, different
EndRecord, ID
StartRecord, ID
various, name, value, name, value, other
EndRecord, ID

我正在使用csv阅读器读取记录并迭代行。如何捕获开始记录和结束记录之间的数据并将其记录到单独的字典对象中(在本示例中,我将有3条记录)?

1 个答案:

答案 0 :(得分:0)

continue语句在这里应该会有所帮助。试试这个。

import csv

dict = {}
current_id = ''

with open('filename.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:
        print(row)
        if row[0] == 'StartRecord':
            current_id = row[1]
            dict[row[1]] = []
            continue
        if row[0] == 'EndRecord':
            continue
        dict[current_id].append(row)

print(dict)

编辑:我意识到,如果您的csv文件中的逗号后有空格(如您的示例中所示),则可能需要修改delimiter参数。