Python检查空白CSV值无效

时间:2010-03-03 22:47:40

标签: python csv null

我有一个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)

它是空白的,它不是'''或无,那么它是否=?

3 个答案:

答案 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())

概括第二个函数:用一个空格替换每个非标准空白字符的出现,然后进行拆分连接舞蹈。