Python | Pyodbc |使用.Encode('utf-8')将FetchAll()编码为Utf-8

时间:2015-02-09 19:49:53

标签: python csv encoding utf-8 pyodbc

提前谢谢。我对python还很新。

我正在尝试使用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)

1 个答案:

答案 0 :(得分:0)

我最终使用了unicodecsv库,很容易解决问题。