2017-09-18 18 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 

に間違った数の表示、印刷がcur.rowcountを使用して、私のテーブル内のレコードの何を合計するとき、それは表に総NOFレコードの数を示していないが、私は1で、レコード1を取得し、私のカウント変数をインクリメントしてなぜ合計レコード数の半分かを示しますpsycopg2

答えて

0

は同時に1行をフェッチしています。 2つの異なるメソッドを使用して、内部カーソルキャッシュを使用して行をダブルフェッチしている可能性があります。

はあなたのcur.fetchone()の呼び出しを削除します。

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 

for row in cur:ループを使用して、行を一つずつ処理するために必要なすべてのです。