Определение имен полей с помощью специальных символов, таких как ^ в Python DBF - PullRequest
0 голосов
/ 04 марта 2019

Я хочу определить таблицу DBF с именами полей, которые могут содержать символ ^.Я использую следующее определение таблицы:

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

Я получаю fieldpecerror как:выше при создании таблицы dbf?

Я использую python 3.7

1 Ответ

0 голосов
/ 04 марта 2019

Оригинальный ответ

Насколько мне известно, спецификация поля 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)
...