在 python 中使用列表理解从 table 中获取一条记录?

Fetch a single record from table using list comprehension in python?

def fetch_maxno():
    dsn_tns = cx_Oracle.makedsn('host', 'port', service_name='serviceno')
    connection = cx_Oracle.connect(user='userno', password='pass', dsn=dsn_tns)
    cursor = connection.cursor()
    sqlquery = "SELECT MAX(ATTNO) AS MAXATTNO FROM HRT"
    cursor.execute(sqlquery)
    maxno = [{'maxattno': row[0]} for row in cursor.fetchall()]
    connection.close()
    return(maxno)

maxno = fetch_maxno()
    for max_atno in maxno:
       maxattno = (f"{maxno['maxattno']}")
       print(maxattno))

我有上面的代码可以从我的 table 中获取一条记录。我有带数据库连接和查询的代码 fetch_maxno 函数。 select 在 maxno 变量中从 table 中获取一条记录。当我需要一条记录时,我正在使用它来理解列表,我认为有任何简单的方法可以在不使用这个 for 循环的情况下获得这个 maxattno。请指导我有没有其他方法可以得到这个。

您可以使用 cursor.fetchone() 而不是 cursor.fetchall() 例如

def fetch_maxno():
    dsn_tns = cx_Oracle.makedsn('host', 'port', service_name='serviceno')
    connection = cx_Oracle.connect(user='userno', password='pass', dsn=dsn_tns)
    cursor = connection.cursor()
    sqlquery = "SELECT MAX(attno) AS maxattno FROM hrt"
    cursor.execute(sqlquery)
    maxno = cursor.fetchone()
    connection.close()
    return(maxno)

maxno = fetch_maxno()[0]
print(maxno)