Хорошо, я здесь использую древний формат базы данных, dbf файлы.Не спрашивайте почему, просто знайте, что определенное программное обеспечение решило расширить поддержку foxpro, потому что Microsoft решила расширить поддержку foxpro.Теперь я получаю следующую ошибку в конкретном файле.Я успешно загрузил другой файл, и мне любопытно, если что-то не так с этой базой данных.Я уверен, что вам, вероятно, нужно взглянуть на базу данных, чтобы определить это, но это огромная возможность для публикации, поэтому я возьму то, что смогу получить.
Traceback (most recent call last):
File "billsapi.py", line 250, in <module>
x.getUsedGuns()
File "billsapi.py", line 72, in getUsedGuns
itemdb = dbf.Dbf('item.dbf', readOnly=True, ignoreErrors=True)
File "C:\Python27\lib\site-packages\dbfpy\dbf.py", line 135, in __init__
self.header = self.HeaderClass.fromStream(self.stream)
File "C:\Python27\lib\site-packages\dbfpy\header.py", line 127, in fromStream
_fld = fields.lookupFor(_data[11]).fromString(_data, _pos)
File "C:\Python27\lib\site-packages\dbfpy\fields.py", line 455, in lookupFor
return _fieldsRegistry[typeCode]
KeyError: '0'
И вот мой простой код, который возвращает эту ошибку:
def getUsedGuns(self):
itemdb = dbf.Dbf('item.dbf', readOnly=True, ignoreErrors=True)
Как я уже сказал, я могу загрузить другие файлы без проблем, но, возможно, есть обходной путь дляэто конкретная ошибка?
РЕДАКТИРОВАТЬ: Я также хотел бы отметить, что файл можно открывать, просматривать и изменять в DBF View Plus.
РЕДАКТИРОВАТЬ: Решение найдено.Я фактически закончил с использованием модуля Python dBase.Я думаю, что моей главной проблемой было отсутствие файлов memo (какими бы они ни были, у них есть расширение файла .fpt).Вот что я использую в данный момент:
from dbf.tables import VfpTable
itemdb = VfpTable('item.db')
for rec in itemdb:
print rec['MY_COLUM_NAME']
Я также хотел бы отметить, что любой, кто все еще использует FoxPro, должен быть сожжен.