pandas資料庫查詢及匯出亂碼問題

2021-09-14 01:29:33 字數 760 閱讀 8045

1. 場景:執行以下查詢,檢視pycharm sciview,可以看到亂碼,因為查詢結果有西歐語言(如:ÿum)

df_rows = pd.read_sql_query(sql, engine)
2. 原因:

(1)檢視db字符集,結果是:we8iso8859p1  (iso8859)

select * from nls_database_parameters where parameter ='nls_characterset';
(2)檢視當前預設字符集為,結果為:ascii

>>> import sys

>>> sys.getdefaultencoding()

'ascii'

(3)原因很明顯,iso-8859-1對應為西歐語言,範圍大於ascii(參考:導致亂碼

3. 解決:可以在執行db查詢後為該列解碼

4. 由於iso-8859-1向下相容ascii, 使用json直接解析時也會異常,由於ascii不足以解析0xff範圍內字元,需編碼

# 錯誤的json解析方式

json.loads(df_rows.to_json(orient='records'))

# 正確的json解析方式

json.loads(df_rows.to_json(orient='records'), encoding='iso-8859-1')

Oracle job及匯入匯出資料庫

1.job工作流程 create table test job para date date commit insert into test job values sysdate commit select from test job 建立存貯過程 create or replace procedu...

匯出資料庫

exp 引數例項 匯出整個例項 exp wjh orcl file wjh.dmp log wjh.log full y consistent y direct y wjh應具有dba許可權 匯出某個使用者所有物件 exp wjh orcl file wjh.dmp log wjh.log owne...

安裝oracle資料庫及匯入匯出資料庫總結

1.安裝oracle資料庫時運用安裝程式時選擇 以管理員身份執行 及 以相容模式執行 2.以管理員身份登入sqlplus 進入cmd,在命令列介面輸入sqlplus sysdba pwd as sysdba 3.建立使用者並授權 create user test identified by pass...