我试图在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值保存在列表中?
答案 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