在python dbf中使用特殊字符(例如^)定义字段名称

时间:2019-03-04 15:08:08

标签: python dbf

我想定义一个DBF表,其字段名称可能包含^字符。 我正在使用以下表定义:

tbl_SubDBF = dbf.Table("..//output//Ttest.dbf", \
                       'B^AWG C(50);    C^PTYPE C(200)')

我收到如下的fieldspecerror:

field names must start with a letter, and can only contain letters, digits, and _

是否有一种变通方法(转义符),允许我在创建dbf表时定义上述标题?

我正在使用python 3.7

1 个答案:

答案 0 :(得分:1)

原始答案

据我所知,dbf字段规范不允许字段名称中包含非字母数字字符。目前,唯一可能的解决方法是子类Table并将失败的方法替换为允许奇怪字符的方法。


更新后的答案

查看有问题的方法(add_fields),将其替换将是一项主要的工作。因此,从dbf 0.98.0开始,人们可以在字段名称中使用任何想要/需要的奇怪字符,但是dbf会对此发出警告:

<module>:<line_no>: FieldNameWarning: "p^type invalid:  field names should start with a letter, and only contain letters, digits, and _
some_dbf.add_fields('p^type C(25)')

要取消警告可以添加以下内容:

import warnings
warnings.filterwarnings('ignore', '', dbf.FieldNameWarning)