[英]Python SQLite3 Retrieve Variables From SELECT Query
我正在忙着编写一个python脚本,该脚本正在查询两个数据库表以在找到的每一行中构建一行数据。 这是我目前的剧本
#========================================================================
# DB CONNECT FUNCTION
#========================================================================
def f_connect(status):
global gv_conn
global gv_curs
if status == 1:
gv_conn = sqlite3.connect("./data.db")
gv_curs = gv_conn.cursor()
else
gv_conn.close()
#========================================================================
# PREPARE SQL STATEMENTS
#========================================================================
def f_statements():
global users_stmt
users_stmt = ("select * from users")
global users_curs
users_curs = gv_conn.cursor()
global uinfo_stmt
uinfo_stmt = ("select * from uinfo" +
"where ui_u_id = ?")
global uinfo_curs
uinfo_curs = gv_conn.cursor()
#========================================================================
#
# MAIN SCRIPT START
#
#========================================================================
f_connect(1)
f_statements()
la_users = []
for u_row in users_curs.execute(users_stmt):
# THIS LINE GETS USERS FROM THE ABOVE STATEMENT
# AND ADDS THEM TO THE DICTIONARY
la_users.append({"u_id": u_row[0], "u_name": u_row[1]})
# THIS LINE EXECUTES ANOTHER QUERY TO RETRIEVE
# A SINGLE ROW OF DATA FROM ANOTHER TABLE
la_uinfo = uinfo_curs.execute(uinfo_stmt, "1")
f_connect(0)
我的问题是,当我执行第一个sql语句时,我可以使用存储数据的for循环进行循环获取数据,以便可以使用u_row [int]进行访问。
当我执行第二个查询时,它存储在la_uinfo中,尽管当我尝试从la_uinfo [int]中获取数据时,它不起作用吗? 如何在不使用另一个for循环的情况下从第二个查询中检索数据? (我不必考虑它仅返回一行)
游标不可索引,因此cursor[0]
将不起作用。 要检索游标的第一行,应使用cursor.fetchone()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.