sqlite3 从打印数据中去掉括号
我写了一个脚本,可以找到我数据库第一行的最后一个值。
import sqlite3
global SerialNum
conn = sqlite3.connect("MyFirstDB.db")
conn.text_factory = str
c = conn.cursor()
SerialNum = c.execute('select Serial from BI4000 where Serial in (Select max(Serial) from BI4000)')
print SerialNum
conn.commtt()
conn.close()
这个程序会把结果打印出来。
[('00003',)]
这个结果就是当前数据库里的最后一个数据,所有将要输入到最终数据库的数据都是序列号,所以它们会按顺序排列。
我想问的是,我能不能把所有的引号、括号和逗号去掉,因为我想把这个值赋给一个变量。
我想做的程序是一个测试系统,它会向数据库添加新条目,我想检查数据库里的最后一个条目,这样系统就可以从那个点继续添加数据。
2 个回答
3
如果你只想从一行中获取一列数据,可以使用:
c.execute('select Serial from BI4000 where Serial in (Select max(Serial) from BI4000)')
result = c.fetchone()
if result: # first row returned?
print result[0] # first column
你的查询可以简化成:
c.execute('Select max(Serial) from BI4000')
9
你执行的查询结果被表示为一个Python列表,里面包含了Python的元组。
列表中的每个元组代表你查询返回的每一行数据。
元组里的每个值对应着那一行的特定字段,顺序是你选择的顺序(在你的例子中,你只选择了一个字段,所以每个元组里只有一个值)。
简单来说: your_variable = SerialNum[0][0]