第一周使用任何语言进行编程并需要一些帮助:我试图从Python中的sqlite3中提取TEXT值作为字符串。我得到一个值作为列表而不是str:
system_id = raw_input ("What is your System ID: ")
例如,用户输入' Elmer'
conn = sqlite3.connect("API.db")
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS SYSTEMID (systemid TEXT)''')
conn.commit()
conn.close()
conn = sqlite3.connect("API.db")
c = conn.cursor()
system_id = c.execute('select systemid from SYSTEMID').fetchall()
conn.close()
那么如何将变量system_id作为字符串?如果我从这里打印出来就像[(你,Elmer)],我想要system_id = Elmer
答案 0 :(得分:1)
正如Ev. Kounis所指出的那样,默认情况下fetchall()
将返回list
个tuple
,其长度等于指定的变量。
在你的情况下,你得到一个长度为1的元组,因为你要求一个变量。
在获取字符串时,默认情况下也会返回字符串u
前面的'Elmer'
(这只是意味着它是Unicode字符串)。
你应该做两件事:
通过将u
的连接更改为text_factor
来摆脱str
:
con.text_factory = str
访问元组的第一个元素以仅获取字符串'Elmer'
:
fetch = c.execute('select systemid from SYSTEMID').fetchall()
system_id = fetch[0][0] # First element in first tuple in list