2016-02-04 11 views
7

Ich versuche, die ersten 10 Zeilen mit Pyodbc zu drucken. Ich weiß, wie den ersten Datensatz zu erhalten, indem die folgende Verwendung:Pyodbc - erste 10 Zeilen drucken (Python)

row = cursor.fetchall() 

Ich habe versucht, zu ändern, dies zu:

row = cursor.fetchten() 

aber das hat nicht funktioniert. Kann ich noch etwas tun?

+1

'fetchall' gibt * alle * Zeilen zurück, die der Cursor hat, nicht nur die ersten. Was versuchst du eigentlich? –

+1

Ich mache nichts mit pyodbc, also könnte das komplettes Kauderwelsch sein, aber könntest du 'cursor.fetchall() [: 10]' nicht machen? – zondo

Antwort

4

Sie fügen:

row = cursor.fetchmany(10) 

Sie können die Zahl in Klammern, um alles, was Sie wollen, ändern.

2

Anhand der gefundenen Dokumentation on this page haben Sie zwei Möglichkeiten, Listen zurückzugeben. Sie haben die fetchall() Methode und die fetchmany() Methode. In beiden Fällen erhalten Sie eine Liste mit Zeilen, mit denen Sie arbeiten können.

In Bezug auf die fetchall() Methode und Huckepack off von dem, was Zondo sagte, folgende Arbeiten schnell und effizient:

rows = cursor.fetchall()[:10] # to get the first 10 
rows = cursor.fetchall()[-10::1] # to get the last 10 

Alternativ können Sie Schleife über die Zeilen so oft müssen Sie die Ergebnisse, die Sie brauchen:

rows = cursor.fetchall() 
for idx in range(10): #[0, 1, ..., 9,] 
    print(rows[idx]) # to get the first 10 
    print(rows[(len(ray)-idx)]) # to get the last 10 

Es gibt auch die fetchmany() Verfahren in der gleichen Dokumentation, wie folgt definiert: cursor.fetchmany([size=cursor.arraysize]) --> list

Die Klammern geben optionale Parameter an, sodass Sie die Größe nicht angeben müssen. Aber da Sie 10 wollen, werden Sie 10 in den Größenparameter übergeben. Beispiel:

rows = cursor.fetchmany(size=10) 
for row in rows: 
    print(row)