我正在尝试通过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定期正常运行。