解决Python Pandas 读取Oracle数据库中文乱码问题

1.Oracle 编码

查询Oracle Server端的字符集:

SQL>   select userenv('language') from dual

我使用的数据库字符集查询结果如下:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
注意:字符集可能不同,因此在配置前需先查询。

2.Python读取数据库

将os.environ[‘NLS_LANG’] 设置为与Oracle 数据库字符集一致。

import cx_Oracle
import os 
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

db=cx_Oracle.connect('userid','password','10.10.3.1:1521/orcl')  

cr=db.cursor()  

3.将数据加载到DataFrame 中

sql='SELECT * FROM sys_users'
cr.execute(sql)  
rs=cr.fetchall()  
df=pd.DataFrame(rs)

你可能感兴趣的:(Python)