这有效:
connection = get_connection()
cursor=connection.cursor()
cursor.execute('show application_name')
application_name_of_connection=cursor.fetchone()[0]
但是为什么有四条线?有没有办法把它放在一行?
答案 0 :(得分:2)
不,没有办法在一行中做到这一点。 Python等语言旨在描述一组指令。这里有四条说明。甚至可能有辅助方法或这些语句的巧妙/低效安排可以将这个降低到三行,但你最好保持它的原样。
例如,如果由于某种原因经常使用此代码,您可以将其封装在自己的方法中
def get_application_name_of_connection()
connection = get_connection()
cursor=connection.cursor()
cursor.execute('show application_name')
return cursor.fetchone()[0]
然后简单地说:
get_application_name_of_connection()
这是它的工作原理。你想要更少的代码?隐藏功能。
答案 1 :(得分:1)
可以通过理解来完成,但是在 sqlite :
results = [row[0] for row in get_connection().cursor().execute('select * from mytable')]
如果您使用的是postgresql,那么它不起作用,您可以尝试使用更紧凑的形式:
with get_connection().cursor() as cur:
cur.execute('show all')
print cur.fetchone()
但是仅如果您需要在执行块之后抛弃光标。
我没有尝试其他数据库管理员,结果可能会有所不同。