с использованием python 3.5.2 на windows (32), я читаю DBF-файл, который возвращает мне OrderedDict.python Ошибка декодирования Unicode при доступе к записям OrderedDict
from dbfread import DBF
Table = DBF('FME.DBF')
for record in Table:
print(record)
При доступе к первой записи все нормально, пока я не достигну запись, которая содержит диакритические:
Traceback (most recent call last):
File "getdbe.py", line 3, in <module>
for record in Table:
File "...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\dbfread\dbf.py", line 311, in _iter_records
for field in self.fields]
File "...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\dbfread\dbf.py", line 311, in <listcomp>
for field in self.fields]
File "...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\dbfread\field_parser.py", line 75, in parse
return func(field, data)
File "...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\dbfread\field_parser.py", line 83, in parseC
return decode_text(data.rstrip(b'\0 '), self.encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 11: ordinal not in range(128)
Даже если я не печатать записи я до сих пор есть проблемы.
Любая идея?
https://dbfread.readthedocs.io/en/latest/introduction.html#character-encodings, попробуйте передать 'DBF (...)' правильную кодировку. –
Вы уверены, что кодировка UTF-8? – Harrison
@ Харрисон: Я очень сомневаюсь, что DBF не является форматом, где я ожидаю увидеть кодированные данные UTF-8. Где ОП даже упоминает UTF-8? –