разобрать CSV в словарь Python по структурированному диапазону - PullRequest
0 голосов
/ 25 июня 2018

У меня есть CSV-файл, в котором диапазоны информации выводятся в строки и разделяются запятой.Каждая строка представляет собой отдельную строку, и набор записей «добавляется» в строки, в которых указаны startrecord (с уникальным идентификатором) и stoprecord (совпадающий 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 reader и перебираю строки.Как мне собрать данные между и startrecord, и endrecord в отдельные объекты словаря (в этом примере у меня будет 3 записи)?

1 Ответ

0 голосов
/ 25 июня 2018

Здесь должно помочь выражение 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)

Редактировать: Я понял, что вам может потребоваться изменить аргумент delimiter, если в вашем CSV-файле есть пробелы после запятых, как в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...