[英]Python 2.7 - Pandas UnicodeEncodeError with data from pyodbc
我正在嘗試使用 pyodbc 從 SQL Server 中提取數據並將其加載到數據幀中,然后將其導出到 HTML 文件,但我一直收到以下 Unicode 錯誤:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 15500: ordinal not in range(128)
這是我當前的設置(每個文檔的編碼說明):
cnxn = pyodbc.connect('DSN=Planning;UID=USER;PWD=PASSWORD;')
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='cp1252', to=unicode)
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='cp1252', to=unicode)
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='cp1252', to=unicode)
cnxn.setencoding(str, encoding='utf-8')
cnxn.setencoding(unicode, encoding='utf-8')
cursor = cnxn.cursor()
with open('Initial Dataset.sql') as f:
initial_query = f.read()
cursor.execute(initial_query)
columns = [column[0] for column in cursor.description]
initial_data = cursor.fetchall()
i_df = pd.DataFrame.from_records(initial_data, columns=columns)
i_df.to_html('initial.html')
一個奇怪但有用的注意點是,當我嘗試導出 CSV 時:
i_df.to_csv('initial.csv')
我得到同樣的錯誤,但是當我添加:
i_df.to_csv('initial.csv', encoding='utf-8')
有用。 有人可以幫我理解這個編碼問題嗎?
附注:我使用也嘗試sqlalchemy
連接和pandas.read_sql()
和相同的錯誤仍然存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.