现在,这就是我所拥有的。我一开始并没有编写脚本,只是想让它工作以获取数据。SQL是正确的,只是被nano截断了。在
def getCommentsByGUID(reportDay):
conn = mysql.connector.connect(host = dbServer, user = dbUser, passwd = dbPass, db = tscDBName)
sqlresult = ''
sql = 'select d.documentId, dn.created, dn.notes as Comment, u.login, d.fileName from DocumentInfo d \
inner join documentnotes dn on d.documentId=dn.documentId \
inner join User u on dn.userId=u.userID \
where d.companyId=%d and dn.created>\'%s 00:00:00\' and dn.created <\'%s 23:59:59\';' % (companyID, reportDay, reportDa$
cursor = conn.cursor()
cursor.execute (sql)
sqlresult = cursor.fetchall()
cursor.close ()
reportWriter = csv.writer(open('%sFilename_comments_%s.csv' % (outputDir, reportDay), 'w'), delimiter=',', quotec$
for results in sqlresult:
reportWriter.writerow(results)
按原样运行会创建unicode错误,例如:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 366: ordinal not in range(128)
现在,经过大量研究,我遇到了这样的情况:
^{pr2}$但仍然有同样的错误:
^{3}$你知道我做错了什么,或者我还能做什么吗?谢谢!在
MySQL连接显然以
unicode
对象的形式返回字符串,而传递给csv.writer
的filehandle没有使用特定的编码打开,因此需要给定代表原始字节的str
对象。在解决方案1:在将字符串传递给
writerow
之前,先用您喜欢的编码(大概是UTF-8)对字符串进行编码:解决方案2:以支持Unicode的模式打开输出文件句柄:
^{pr2}$相关问题 更多 >
编程相关推荐