簡體   English   中英

Python SQLite3從SELECT查詢中檢索變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM