2017-09-18 1 views
-1
count1= cur.rowcount 
print count1 
count=0 
for vari in cur: 
    print count 
    str=cur.fetchone() 
    #print str[0] 
    #print str[1] 
    #print str[2] 
    #print str[3] 
    #print str[4] 
    #print str[5] 
    if str[2]=='Extract': 
    word='This report '+' is about '+str[0] 
    else: 
    word='This '+ str[2] +' is about '+str[0] 
    count+=1 
print count 

wenn Druck gesamte Anzahl der Datensätze in meiner Tabelle cur.rowcount mit ihm Anzahl der insgesamt nof Datensätze in der Tabelle zeigt, aber wenn ich hole einen Datensatz eines nach der anderen und meine Zählvariable inkrementiert es dann Zeigt an, wie die Hälfte der gesamten Datensätze ist. Warum ist das so?Anzeige falscher Zählung in psycopg2

Antwort

0

Sie durchlaufen und, um einzelne Zeilen gleichzeitig abzurufen. Sie holen Zeilen doppelt, möglicherweise mit dem internen Cursorcache auch mit zwei verschiedenen Methoden muckend.

Ihre cur.fetchone() Anruf entfernen:

for row in cur: 
    if row[2]=='Extract': 
     word = 'This report is about ' + row[0] 
    else: 
     word = 'This '+ row[2] +' is about ' + row[0] 
    count+=1 

Die for row in cur: Schleife alles, was Sie brauchen, ist Zeilen nacheinander zu verarbeiten.