python - Pandas - reading from SQL server, and outputting to csv - encoding problems -
i reading data pandas sql server 2014 12.0.4100 sp1 database. data stored in windows-1252 encoding.
i using python 2.7.
i want output resulting dataframe excel or csv. specifically:
import pyodbc cnxn = pyodbc.connect(r'driver={sql server};server=.\my_server;database=my_db;trusted_connection=yes;') sql = "select * my_table" df = pd.read_sql(sql, cnxn) df.to_csv("my_csv.csv", encoding="utf-8")
however, fails error message:
unicodedecodeerror: 'utf8' codec can't decode byte 0x92 in position 13966: invalid start byte
what need export utf-8 csv?
the solution convert columns non-ascii characters utf-8 explicitly.
you can using following code:
def convert(my_str): return my_str.decode('windows-1252').encode('utf-8') df["name"] = df["name"].apply(convert)
once converted, able write .csv , excel format without problems.
Comments
Post a Comment