Python 熊猫-从SQL server读取,并输出到csv-编码问题
我正在将数据从SQL Server 2014 12.0.4100 SP1数据库读入pandas。数据存储在Windows-1252编码中 我正在使用python 2.7 我想将结果数据框输出到Excel或csv。具体而言:Python 熊猫-从SQL server读取,并输出到csv-编码问题,python,sql-server,csv,pandas,encoding,Python,Sql Server,Csv,Pandas,Encoding,我正在将数据从SQL Server 2014 12.0.4100 SP1数据库读入pandas。数据存储在Windows-1252编码中 我正在使用python 2.7 我想将结果数据框输出到Excel或csv。具体而言: import pyodbc cnxn = pyodbc.connect(r'Driver={SQL Server};Server=.\my_server;Database=my_db;Trusted_Connection=yes;') sql = "select * from
import pyodbc
cnxn = pyodbc.connect(r'Driver={SQL Server};Server=.\my_server;Database=my_db;Trusted_Connection=yes;')
sql = "select * from my_table"
df = pd.read_sql(sql, cnxn)
df.to_csv("my_csv.csv", encoding="utf-8")
但是,此操作失败,并显示错误消息:
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 13966: invalid start byte
要成功导出到utf-8 csv,我需要做什么?解决方案是将任何带有非ASCII字符的列显式转换为utf-8 可以使用以下代码执行此操作:
def convert(my_str):
return my_str.decode('Windows-1252').encode('utf-8')
df["Name"] = df["Name"].apply(convert)
转换后,您将能够毫无问题地写入.csv和Excel格式。您是否尝试使用“ISO-8859-2”作为编码
df.to_csv("my_csv.csv", encoding="ISO-8859-2")