У меня возникла любопытная проблема с пакетом csv в Python 3.7.
Я импортирую файл csv и могу получить доступ ко всем файлам, как и ожидалось, за одним исключением - строкой заголовка, какхранится в объекте «fieldnames», имеет неправильный заголовок первого столбца (первый элемент в именах полей).
Это первое поле всегда имеет формат: 'xxx"header"'
где:
xxx
- это символы мусора, которые всегда кажутся одинаковыми header
- правильный текст заголовка
См. Следующий снимок экрана моего table <csv.DictReader>
объект из моего окна отладки: ![enter image description here](https://i.stack.imgur.com/0KAJ7.png)
Мой код для открытия файла следует.Я добавил headers[0] = table.fieldnames[0].split('"')[1] in order to extract the correct header and place it back into
fieldnames`.
import csv
with self.inputfile.open() as self.inputfid:
table = csv.DictReader(self.inputfid, delimiter=',')
headers = table.fieldnames
headers[0] = table.fieldnames[0].split('"')[1]
( Примечание: self.inputfile
- это pathlib.Path
объект)
Я не заметил этого длядолгое время, потому что я не использовал первый столбец (с заголовком #) - я некоторое время счастливо разбирался с остальными столбцами на нескольких файлах.
Если я смотрю прямо наcsv, похоже, нет никаких проблем:
![```csv](https://i.stack.imgur.com/UAa7d.png)
Вопросы:
Кто-нибудь знает, в чем проблемаявляется?Могу ли я попытаться исправить проблему с импортом?
Если исправления нет, есть ли лучший способ разобрать мусор?Я понимаю, что это может проясниться в будущем, но я думаю, что разделение все равно будет работать даже с простыми двойными кавычками (заголовок должен быть вторым элементом в разделении, верно?).Есть ли лучшее решение?