0

単純な 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()
4

1 に答える 1