如何让python识别DBF中的字符串值作为if / else语句的一部分?

时间:2013-12-11 17:34:45

标签: python dbf

我正在构建一个程序,根据不同的条件将新值写入dbf,但我遇到的问题是python没有将文本值识别为if / else语句的一部分。

如果我的“col1”填充了真/假值,我想说:

my_table.add_fields('col2 N(2,0)')

for record in dbf.Process(my_table):
    if record.col1 == 'true':
        record.col2 = 1
    else: 
        record.col2 = 2

如何让python将'true / false'识别为该语句的一部分?

1 个答案:

答案 0 :(得分:1)

什么数据类型是col1?基本dbf数据类型是Char(文本),Date(日期时间),Logical(布尔值)Number(整数/浮点数),Float(整数/ float)和Memo(无界文本)。

如果col1不是Char字段,则与字符串比较将始终返回False。如果col1是Char字段,那么只有当col1激动'真'时才会比较相等 - 不是'真'或'真'或'真'。

如果问题是额外的空格(默认情况下我的模块返回整个字段,包括尾随空格),你可以这样做:

if record.col1.strip() == 'true':

或告诉dbf.Table使用忽略尾随空格的自定义Char类型:

my_table = dbf.Table('/path/to/file', default_data_types={'C':dbf.Char})