你好。使用数据库 (postgresql) 中的 psycopg2 库,我提取了几行数据。
cur.execute(querry)
例如,各行的内容如下:
>>for row in cur:
row[0]+" "+row[1]
Иванов Москва
Петров Пенза
Сидоров Волгоград
Кузнецов Смоленск
现在的问题是:如何在不运行整个循环的情况下立即从游标中提取第三行“Sidorov Volgograd”,而不需要对数据库进行重复查询以准确提取所需的记录?
一点也不,在我看来。显然,它
cur.execute
给出了生成器,如果所需元素的数量未知,则无法在没有循环的情况下从迭代器中提取值。据我所知,在 psycopg2(以及许多其他用于连接数据库的库中)中,游标对象有一个 fetchall () 方法,您可以使用该方法将其内容卸载到列表中,然后通过索引访问它。
同时,请记住,如果您想从查询结果中按编号读取行,那么您必须在查询中通过 ORDER BY 显式指定排序 - 否则 sql 标准不保证结果行将按照您的某种顺序排列预计。