csv
に大きなテーブルを書き込もうとしています。pyodbc
を使用してfetchmany()
を使用しています。私は正しく接続することができますが、書き込まれる唯一のレコードはヘッダーです。 dbカーソルをループする正しい方法は何ですか?PYODBC fetchmanyからcsvのみ出力ヘッダー
cxn = pyodbc.connect(cxn data)
mssql_cursor = cxn.cursor()
mssql_cursor.execute(sql_query)
c = csv.writer(open('file.csv', 'w', encoding ='UTF-8', newline='\n'), delimiter='|')
c.writerow([i[0] for i in mssql_cursor.description])
results = mssql_cursor.fetchmany(10000)
while results:
c.writerows(results)
results = mssql_cursor.fetchmany(10000)
mssql_cursor.close()
cxn.close()
編集:fetchmany
メソッドでは何も返されないように見えます。私はprint(len(results))
を追加し、その結果は、私はそれをシンプルに保つだけ繰り返すでしょう0
は –
@MoinuddinQuadri同じ結果に 'あなたを' c.writerows(リスト(結果を))してみてください依然としてフェッチされたオブジェクトを反復処理する必要があります。 – mikebmassey
whileループ – Parfait