gpt4 book ai didi

python - MySQL 通过 Python 脚本以 UTF-8 格式导出到 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 00:45:46 27 4
gpt4 key购买 nike

我可以通过 Python csv 将 MySQL 表导出到 CSV 文件中模块,但没有 utf-8 字符。 (例如:????ąöę 的字符)。

表格数据为 utf-8 格式(phpMyAdmin 让我看到正确的数据)。

我发现了一些信息,在 Python 中,所有数据都应该在 utf-8 中解码,然后通过例如 unicodewritter 以 utf-8 编码为 CSV。 (因为 native csv 模块不正确支持 Unicode)。

我尝试了很多但没有成功。

问题:是否有任何示例脚本可以将 utf-8 中的 MySQL 数据库导出为 Python 中 utf-8 格式的 CSV 文件?

我使用 ubuntu 14.04,mysql.connector 有问题,所以我使用 MySQLdb 和 Gord Thompson 代码:

# -*- coding: utf-8 -*-
import csv
import MySQLdb
from UnicodeSupportForCsv import UnicodeWriter
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#sys.setdefaultencoding('Cp1252')

conn = MySQLdb.Connection(db='sampledb', host='localhost',
user='sampleuser', passwd='samplepass')

crsr = conn.cursor()
crsr.execute("SELECT * FROM rfid")
with open(r'test.csv', 'wb') as csvfile:
uw = UnicodeWriter(
csvfile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in crsr.fetchall():
uw.writerow([unicode(col) for col in row])

错误仍然存​​在:UnicodeDecodeError: 'utf8' codec can't decode byte 0xf3 in position 2: invalid continuation byte

最佳答案

MySQL 非常擅长转换字符集。但是您需要告诉它使用正确的排序规则建立连接。

默认情况下,它返回它是如何放入数据库的。将所需的字符集添加到连接中:

conn = MySQLdb.Connection(db='sampledb', host='localhost',           
user='sampleuser', passwd='samplepass', charset='utf-8', )

这有帮助吗?

关于python - MySQL 通过 Python 脚本以 UTF-8 格式导出到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34599900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com