Python dbfpy 和 FoxPro

2024-04-12

我在这里使用一种古老的数据库格式,dbf 文件。不要问为什么,只知道某个软件决定扩展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) 

就像我说的,我可以毫无问题地加载其他文件,但也许有解决这个特定错误的方法?

EDIT:我还想指出的是,该文件可以在 DBF View Plus 中打开、查看和修改。


您的回溯是 dbfpy 告诉您文件具有 dbfpy 不支持的字段类型代码的方式,0。这是 Visual FoxPro(“VFP”)的东西。

这与备忘录文件无关。是的,如果有备注字段,它们会存储在.FPT file. foo.fpt您访问时需要在场foo.dbf.

你说“”“我实际上最终使用了 python dBase 模块”“”......大概你的意思是 Ethan Furman 的dbf模块,根据其PyPI入门 http://pypi.python.org/pypi/dbf/不支持空字段。

我有一个 DBF 读取模块(pydbfrw)我一直想发布“其中一天”。这是其文档的摘录:

Field Type      Description  DBF variety  Python 2.x type
0 (digit zero)  _NullFlags   VFP          N/A             

Notes: This field type is used only for the hidden _NullFlags field which
is a bit mask saying which fields in the record should be interpreted as NULL.

我的模块实现了识别并返回None需要时获取字段值。如果您想要该模块的副本,请找到我的电子邮件地址 - 例如google("john machin xlrd") -- 给我发电子邮件,我会将其发送给您。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python dbfpy 和 FoxPro 的相关文章

随机推荐