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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -