Kanonickým způsobem je použití vestavěného kurzorového iterátoru.
curs.execute('select * from people')
for row in curs:
print row
Můžete použít fetchall()
získat všechny řádky najednou.
for row in curs.fetchall():
print row
To může být praktické použít k vytvoření seznamu Pythonu obsahujícího vrácené hodnoty:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
To může být užitečné pro menší sady výsledků, ale pokud je sada výsledků velká, může to mít špatné vedlejší účinky.
-
Musíte počkat, až se celá sada výsledků vrátí vašemu klientskému procesu.
-
Můžete sníst spoustu paměti ve vašem klientovi, abyste udrželi sestavený seznam.
-
Může chvíli trvat, než Python sestaví a dekonstruuje seznam, který stejně okamžitě zahodíte.
Pokud víte, že se v sadě výsledků vrací jeden řádek, můžete zavolat fetchone()
získat jeden řádek.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Nakonec můžete opakovat sadu výsledků a načítat jeden řádek po druhém. Obecně to nemá žádnou zvláštní výhodu oproti použití iterátoru.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()