我有一个CSV文件,我正在运行一个脚本来插入数据库。 如果值为空,那么我不想插入它。这就是我所拥有的
if attrs[attr] != '' and attrs[attr] != None:
log.info('Attriute ID: %s' % attr)
log.info('Attriute Value: %s' % attrs[attr])
sql = insert_attr_query(attrs[attr], object_id, attr)
cursor.execute(sql)
它是空白的,它不是'''或无,那么它是否=?
答案 0 :(得分:4)
它可能是空格,即带有空格的制表符或字符串: -
attrs[attr].strip()
答案 1 :(得分:3)
据推测它包含空格。您可以通过打印repr(attrs[attr])
来检查这一点,if attrs[attr] is not None and attrs[attr].strip() !="":
会将引号括起来并在“\ t”显示标签
将代码更改为{{1}}
答案 2 :(得分:1)
您应该(几乎)始终规范化用于插入数据库的任何文本字符串中的空格(或用于许多其他目的)。
规范化空格是(1)去除任何前导空格(2)剥离任何尾随空格(3)将空格的任何内部运行(长度> = 1)替换为1个空格(U + 0020)。
空格不应限于Python提供的标准,特别是如果您使用的是Python 2.X而不使用unicode对象。例如,在默认的“C”语言环境中,“\ xA0”不被视为空格,但它很可能代表NO-BREAK SPACE(U + 00A0)。
Python 2.X的示例代码:
def normalize_white_space_u(unicode_object):
return u' '.join(unicode_object.split())
def normalize_white_space_s(str_object):
return ' '.join(str_object.replace('\xA0', ' ').split())
概括第二个函数:用一个空格替换每个非标准空白字符的出现,然后进行拆分连接舞蹈。