使用特殊字符定义字段名称,例如python dbf中的^

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用特殊字符定义字段名称,例如python dbf中的^相关的知识,希望对你有一定的参考价值。

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

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

我得到的字段如下:

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

是否有一个解决方法(转义字符),允许我在创建dbf表时定义上面提到的标题?

我正在使用python 3.7

答案

原始答案

据我所知,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)

以上是关于使用特殊字符定义字段名称,例如python dbf中的^的主要内容,如果未能解决你的问题,请参考以下文章

读取dbf类

从C#中的数据中删除特殊字符后如何将dbf文件中的数百万行数据上传到SQL Server

Datazen自己定义地图

Python:通过字符串中的名称访问结构字段

Python移除指定文件夹中所有文件名称中的特殊字符(数字特殊字符空格等)只保留字母字符

Python移除指定文件夹中所有文件名称中的特殊字符(数字特殊字符空格等)只保留字母字符