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