Я пытаюсь разбить следующее поле данных на 3 поля (pre, match и suf) и ввести их в текстовый файл с разделителями-запятыми. Я читаю все это из файла csv ... и это данные utf-8.Использование символов Python для 're.split' unicode
Моя проблема прямо сейчас в том, что я не могу обойти «TypeError: принуждение к Unicode: нужна строка или буфер, список найденных» ошибок ... однако, видя, что я пытался установить свои кодировки, я не знаю, где неразбериха здесь ...
образец данных:
A-1 طس
TX 35-L
Av Rib
Расщепление на это должно (? \ d + (- [с.ш. ю.ш. в.д. з.д.])) предоставить мне с этим:
Column1 | Column2 | Column3
A |1 |طس
TX |35 |-L
Av Rib | |
Мой текущий код:
## Iterate over csv file to create matches and splits
## string according to regex pattern..
reader = csv.reader(csvfile)
with codecs.open(r'file.txt', 'w', 'utf-8') as outfile1:
for row in reader:
unicode_row = [x.decode('utf-8') for x in row]
item = unicode_row[1]
parsed = re.compile("\d+(-?[NSEW])?", re.UNICODE).split(unicode(item, 'utf-8'))
outfile1.write(parsed + "\n")
Где именно вы получите TypeError? Открыт ли csvfile с помощью 'codecs.open' или просто' open'? – user2622016
это вопрос Python3 или Python2? – user2622016
Используя 2.7, я открываю csvfile для чтения, используя только «open» (но, как вы видите, файл записи использует кодеки). – user14696