Python |数据库 |使用 .Encode('utf-8') 将 FetchAll() 编码为 Utf-8
Python | Pyodbc | Encoding FetchAll() to Utf-8 with .Encode('utf-8')
提前致谢。我对 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)
我最终使用了 unicodecsv 库,它轻松解决了问题。
提前致谢。我对 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)
我最终使用了 unicodecsv 库,它轻松解决了问题。