未知字段类型:尝试打开 DBF 数据库时为 64

问题描述

我正在尝试使用 dbf 库打开一个 dbf 文件,以将读取数据发送到生产应用程序 API。

不幸的是,当我尝试打开包含需要发送到 API 的订单的 dbf 文件时,出现以下错误

File "C:\...\IntegrationEngine.py",line 686,in za00za
    table = dbf.Table(path,codepage='cp852',ignore_memos=True).open()
File "C:\...\site-packages\dbf\__init__.py",line 5526,in __init__
    self._initialize_fields()
File "C:\...\site-packages\dbf\__init__.py",line 6427,in _initialize_fields
    raise BadDataError("UnkNown field type: %s" % type)
dbf.BadDataError: UnkNown field type: 64

正如我之前提到的,我使用 dbf 库。

import dbf

我正在尝试使用此行打开 dbf 数据库

table = dbf.Table(path,ignore_memos=True).open()

我不知道如何处理这样的错误。我试图打开的文件是 Trawers ERP 应用程序使用的 za00za*.dbf 文件(由 Tres 提供,这里是演示:https://tres.pl/demo)。

编辑:

我试图在 dbf 库的副本中添加一些“调试打印”,所以我添加

print("Name: %s,Type: %s" % (name,type))

错误消息上方的几行(dbf lib的init.py中的6427行),我发现哪些列“损坏”:

(a lot of other columns...)
Name: VJEDPRZE,Type: 78
Name: VSYMBOLB,Type: 67
Name: VNRTAB,Type: 67
Name: VRODZKUR,Type: 78
Name: ODMKASTN,Type: 67
Name: CLREASON,Type: 67
Name: CLSYMOP,Type: 67
Name: CLDATE,Type: 64
Traceback (most recent call last):
  File "C:\...\IE_TEST.py",line 5,in <module>
    table = dbf.Table(path,ignore_memos=True).open()
  File "C:\...\dbf\__init__.py",in __init__
    self._initialize_fields()
  File "C:\...\dbf\__init__.py",line 6428,in _initialize_fields
    raise BadDataError("UnkNown field type: %s" % type)
dbf.BadDataError: UnkNown field type: 64

有什么办法可以跳过这一列或类似的内容吗?

解决方法

问题是当前不支持列类型 Timestamp (@)。不过,多亏了 OP 的帮助,它将在下一个版本中发布。