1
我想建立一個輔助函數來得到SQLite的查詢結果,用來與從另一個數據庫的結果進行比較。產量:產量用法在Python
我希望用戶有一個簡單的界面,在那裏,他呼籲他的查詢功能,並得到一個結果,沒有任何其他的準備。
我最後寫兩個功能:
import sqlite3
.
.
def sqlite_query_executor(query):
conn=sqlite3.connect(':memory:')
cur=conn.cursor()
yield cur.execute(query).fetchall()[0][0]
而且一個旨在由用戶名爲:
def query_sqlite(query):
return next(sqlite_query_executor(query))
雖然與第一功能修修補補,我最初寫了另一個版本用稍微有點不同的結局:
def sqlite_query_executor(query):
conn=sqlite3.connect()
cur=conn.cursor()
while True:
yield cur.execute(query).fetchall()[0][0]
兩個版本似乎都很好,但我結構與機械師一起玩。
可能有人或許對差異揭示?這種用例的正確模式是什麼?
第一功能在每次迭代連接。這看起來很不起作用。 –
因此,光標只是一直保持連接?你不需要關閉連接嗎? –
爲什麼你在所有這些'yield'和'next'東西以及'fetchall'時都不想要*全部*? – user2357112