0

ファイルをあるディレクトリから別のディレクトリにコピーし、そのファイル名をdocアーカイブPostgreSQLテーブルにコピーするPythonスクリプトを書いています。私が受け取るエラーは以下のとおりです。

Camt' は、名前付きカーソルに対して複数回 excute() を呼び出します

以下は私のコードです:

        cursor = conn.cursor('cur', cursor_factory=psycopg2.extras.DictCursor)
    cursor.execute('SELECT * FROM doc_archive.table LIMIT 4821')
      row_count = 0
    for row in cursor:
        row_count += 1
        print "row: %s    %s\r" % (row_count, row),
        pathForListFiles = srcDir
    files = os.listdir(pathForListFiles)
    for file in files:
        print file
        try:
            # Perform an insert with the docid
            cursor.execute("INSERT INTO doc_archive.field_photo_vw VALUES)
4

1 に答える 1

1

これは実際のコードですか?2 回目の実行で、比類のない見積もりが得られました。

結果を反復するとき、私は通常使用します

for var in range(int(cursor.rowcount)):
    row = cursor.fetchone()

問題なく。

for var in cursor: 

私には間違っているようです。

results = cur.fetchall()
for var in enumerate(results):

基本的に同じものがあります。ただし、結果の最初のセットを反復している間に別の実行を行う必要がある場合に備えて、カーソルを閉じることができます。通常、これらのインスタンスでは別のカーソルを宣言するだけです。

どちらの場合も、現在のコードは実行結果を取得していないようです。そのデータを処理する必要がある場合、これは重要です。

于 2012-04-25T15:35:35.273 に答える