単純な sql を実行し、結果を CSV 出力に書き込もうとしています。ただし、コードは次のエラーで失敗します。
<pymssql.Connection object at 0x01EF4AF8>
<_csv.writer object at 0x0B6C3270>
Traceback (most recent call last):
File "C:\_WORKSPACE\ReportsInventory\CustomReports\CustomReports.py", line 38, in <module>
f.writerow(row)
UnicodeEncodeError: 'ascii' codec can't encode character u'\x96' in position 14: ordinal not in range(128)
私が実行しているデータベースは、MSSQLSERVER です。接続文字列で charset="ISO-8859-1" を指定しました。特殊文字にヒットしていることは理解していますが、挿入を成功させるためにそれらを処理する方法について何か考えはありますか?
前もって感謝します、シマク
私の完全なコードは以下のとおりです。
import pymssql
import csv
import datetime
import re
import sys
from config import config
user=r'user'
database = config['ProdDatabase']
connection = pymssql.connect(config['ProdHost'], user, config['ProdPassword'], database,charset="ISO-8859-1")
connLog = pymssql.connect(config['ProdHost'], user, config['ProdPassword']
print connection
cursor = connection.cursor()
query = """ SELECT dbname,ReportType,ReportID,Report,ReportDriver,FilteredColumn,Filter,FilteredConditionValue from tempReports """
cursor.execute(query)
data=cursor.fetchall()
f = csv.writer(open("C:\\_WORKSPACE\\ReportsInventory\\CustomReports\\customreports.csv","w"))
print f
for row in data:
f.writerow(row)
cursor.close()
f.close()
connection.close()