わかりました、ここでは古代のデータベース形式である dbf ファイルを使用しています。理由は聞かないでください。Microsoft が foxpro のサポートを延長することを決定したため、特定のソフトウェアが 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 モジュールを使用することになりました。私の主な問題は、メモファイルが周りにないことだと思います(それらが何であれ、.fptファイル拡張子が付いています)。現時点で私が使用しているものは次のとおりです。
from dbf.tables import VfpTable
itemdb = VfpTable('item.db')
for rec in itemdb:
print rec['MY_COLUM_NAME']
また、現在まだ FoxPro を使用している人は誰でもやけどを負わなければならないことを指摘したいと思います。