import sqlite3
conn = sqlite3.connect('contacten.db')
c = conn.cursor()
#c.execute("""CREATE TABLE mail (
# mail text
# )""")
#c.execute("INSERT INTO mail VALUES ('[email protected]')")
conn.commit()
c.execute("SELECT * FROM mail")
print(c.fetchall())
conn.commit()
conn.close()
这是我编写的代码,结果得到:
[('[email protected]',), ('[email protected]',), ('[email protected]',)]
但是在此数组中,逗号太多了。 ,), 像这样。你们中有人知道如何摆脱这种多余的逗号吗?
逗号的存在是有充分的理由的,您的结果是元组列表;这是sqlite
如何表示结果集的结果,数据本身不包含逗号:
result = c.fetchall()
print(result)
=> [('[email protected]',), ('[email protected]',), ('[email protected]',)]
那是因为每一行可以有多个字段。在您的情况下,您只有一个字段,但是Python不能仅删除逗号,因为如果这样做,您最终将得到方括号之间的元素列表,而不是元组列表(请参阅here以了解原因) 。
当然,如果您确定结果每行只有一个字段,则可以在打印结果时从每行中提取一个(唯一的)字段来简单地摆脱元组:] >
result = c.fetchall()
print([f[0] for f in result])
=> ['[email protected]', '[email protected]', '[email protected]']
使用python zip:
import sqlite3
conn = sqlite3.connect('contacten.db')
c = conn.cursor()
#c.execute("""CREATE TABLE mail (
# mail text
# )""")
#c.execute("INSERT INTO mail VALUES ('[email protected]')")
#c.execute("INSERT INTO mail VALUES ('[email protected]')")
#c.execute("INSERT INTO mail VALUES ('[email protected]')")
conn.commit()
c.execute("SELECT * FROM mail")
#print(c.fetchall())
for item in c.fetchall():
print item[0]
conn.commit()
conn.close()