Проблемы с открытием файлов DBF в PythonPython

Программы на Python
Ответить
Anonymous
 Проблемы с открытием файлов DBF в Python

Сообщение Anonymous »

Я пытаюсь открыть и преобразовать несколько файлов DBF в фрейм данных. Большинство из них работали нормально, но для одного из файлов я получаю сообщение об ошибке:
"UnicodeDecodeError: кодек 'utf-8' не может декодировать байт 0xf6 в позиции 15: недопустимый начальный байт"

Я читал эту ошибку в некоторых других темах, таких как открытие csv, xlsx и других файлов. Предлагаемое решение состояло в том, чтобы включить кодировку = 'utf-8'
в часть чтения файла. К сожалению, я не нашел решения для файлов DBF, и у меня очень ограниченные знания о файлах DBF.

Что я пробовал до сих пор:

1)

Код: Выделить всё

from dbfread import DBF
dbf = DBF('file.DBF')
dbf = pd.DataFrame(dbf)

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 8: character maps to 
2)

Код: Выделить всё

from simpledbf import Dbf5
dbf = Dbf5('file.DBF')
dbf = dbf.to_dataframe()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 15: invalid start byte
3)

Код: Выделить всё

# this block of code copied from https://gist.github.com/ryan-hill/f90b1c68f60d12baea81
import pysal as ps

def dbf2DF(dbfile, upper=True): #Reads in DBF files and returns Pandas DF
db = ps.table(dbfile) #Pysal to open DBF
d = {col: db.by_col(col) for col in db.header} #Convert dbf to dictionary
#pandasDF = pd.DataFrame(db[:]) #Convert to Pandas DF
pandasDF = pd.DataFrame(d) #Convert to Pandas DF
if upper == True: #Make columns uppercase if wanted
pandasDF.columns = map(str.upper, db.header)
db.close()
return pandasDF

dfb = dbf2DF('file.DBF')

AttributeError: module 'pysal' has no attribute 'open'
И наконец, если я попытаюсь установить модуль dbfpy, я получаю:
SyntaxError: недопустимый синтаксис

Есть предложения по решению этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/572 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»