使用熊猫的read_sql时如何解决Unicode解码错误?

时间:2019-05-28 16:38:02

标签: python python-3.x oracle pandas sqlalchemy

我正在尝试通过SQL将大型数据库引入pd数据帧。这是一个oracle SQL服务器,其中:

NLS_NCHAR_CHARACTERSET = AL16UTF16
NLS_CHARACTERSET = WE8MSWIN1252

当我使用SQL语句读取数据时,最终会收到此错误。

错误:

  

UnicodeDecodeError:'utf-8'编解码器无法解码位置26的字节0x97,无效的起始字节

我已经尝试在SQLAlchemy引擎中指定编码和nencoding,但是我没有尝试过。

这是我的引擎代码:

def connectWarehouse():
    # Create Warehouse Connection
    oracle_connection_string = 'oracle+cx_oracle://{username}:{password}@{hostname}:{port}/{database}'
    engine_Warehouse = create_engine(
        oracle_connection_string.format(
            username='####',
            password='####',
            hostname='####',
            port='####',
            database='####',
            ), connect_args={"encoding": "utf-8", "nencoding": "utf-8"}
        )
    return engine_Warehouse

这是我的熊猫声明:

all_New_Data = pd.read_sql(query2, engine_Warehouse)

要解决此错误,我需要更改什么?

SQL语句可以通过SQL定期正常运行。

0 个答案:

没有答案