2015-02-09 340 views
1

在此先感谢。我对python仍然很陌生。Python | Pyodbc |使用.Encode('utf-8')将FetchAll()编码为Utf-8

我正在尝试将使用FetchAll的pyodbc查询的结果写入CSV文件。当我在舞台服务器上运行代码时,一切都很好。在我们的Live服务器上,数据存在编码问题。我一直在试图用几种不同的方式对FetchAll()的结果进行编码,但似乎没有任何效果。你可以在列表元素上或在for循环中调用它,它会被一个整数捕获并失败。

任何想法在一个简单的方法来实现这个吗?我看了一些其他相关的票据,并认为我找到了答案,但正如我上面提到的编码发生在一个整数。所以我承认这部分是缺乏经验的。

任何帮助,将不胜感激。这是相关的代码。

 f = csv.writer(file(filename, 'wb')) 

    cnxn = pyodbc.connect(self.connect_string) 
    c = cnxn.cursor() 
    c.execute(sql) 
    rows = c.fetchall() 
    # rows = [[x.encode('utf-8') for x in row] for row in rows] <---- doesnt work, x.encode is considered an int 

    if include_headers: 
     f.writerow([d[0] for d in c.description]) 

    for row in rows: 
     f.writerows(row) 
+0

我结束了使用unicodecsv库。 – 2015-03-25 19:09:31

回答

0

我结束了使用unicodecsv库,它很容易解决问题。