创建非空值的列表

时间:2017-06-29 21:24:11

标签: python sqlite

我试图在Python列表中保存SQLite中的三个值。所有值都来自不同的列,但在同一行中。如果值为null,我不想将其添加到列表中。这是我写的代码:

    def create_list(self, chat):
    list = []
    for x in range(1, 3):
        column_name = "list" + str(x)
        value = c.execute("SELECT (?) FROM user WHERE (?) NOTNULL AND id = (?)", (column_name, column_name, chat)).fetchall()
        if value != None:
            list.append(value[0][0])
    print(list)

不是在列表中打印SQLite值,而是打印:[' list1',' list2',' list3'](如果其中一个值在表中为null,它不打印那个。例如,如果列liste3中的值为null,则只打印[' list1',' list2']) 如何解决这个问题,以便将实际的SQLite值保存在列表中?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。 默认情况下,SQLite程序包在获取数据后会忽略NULL值。您需要设置一个条件,当它面对NULL值时会显示“ Empty”或其他内容。像这样:

conn = sqlite3.connect("someDataBase.db")
db = conn.cursor()

db.execute('''
    SELECT name, email
    FROM person
    WHERE name = 'some dude'
''')

result = db.fetchone()  

if result is None: #if a value IS NULL
    print 'Empty'
else:
    var = result[0]
    print var