2016-02-04 47 views
7

Sto provando a stampare le prime 10 righe usando pyodbc. So come ottenere il primo record utilizzando la seguente:Pyodbc - stampa le prime 10 righe (python)

row = cursor.fetchall() 

Ho provato a cambiare questo:

row = cursor.fetchten() 

ma questo non ha funzionato. C'è qualcos'altro che posso fare ??

+1

'fetchall' restituirà * tutte * le righe del cursore, non solo il primo. Cosa stai cercando di fare? –

+1

Non faccio nulla con pyodbc, quindi questo potrebbe essere completo senza senso, ma non potresti fare 'cursor.fetchall() [: 10]'? – zondo

risposta

4

si inserisce:

row = cursor.fetchmany(10) 

È possibile modificare il numero tra parentesi a tutto quello che vuoi.

2

Sulla base della documentazione trovata on this page, hai due opzioni per la restituzione delle liste. Hai il metodo fetchall() e il metodo fetchmany(). In entrambi i casi, viene restituito un elenco di righe con cui lavorare.

Per quanto riguarda il metodo di fetchall() e bagarinaggio fuori di ciò che Zondo Detto questo, i seguenti lavori in modo rapido ed efficiente:

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

In alternativa, è possibile ciclo sopra le righe come tante volte è necessario per ottenere i risultati desiderati:

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 

C'è anche il metodo fetchmany() nella stessa documentazione, definita come segue: cursor.fetchmany([size=cursor.arraysize]) --> list

Le parentesi indicano i parametri facoltativi, quindi non è necessario includere la dimensione. Ma dato che vuoi 10, passerai 10 nel parametro size. Esempio:

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