[英]Unicode issues with Pandas and SQLAlchemy using Oracle Database
我正在尝试使用 pandas 读取 csv 文件并将其写入 oracle 数据库
import pandas as pd
import sqlalchmey types, create_engine
df = pd.read_csv("abc.csv")
df.dtypes
Name object
CName object
price float64
df.head(2)
Name CName price
Gary ALS 13.0
John Ülka 19.9
engine = create_engine('oracle://+ xxx + xxx + 'connection string')
connection = engine.connect()
df.to_sql(name='test-tbl', con=connection, index=False, if_exists='append')
File "/apps/anaconda/4.6.14/envs/TST/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1468, in _handle_dbapi_exception
util.reraise(*exc_info)
File "/apps/anaconda/4.6.14/envs/TST/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 154, in reraise
raise value
File "/apps/anaconda/4.6.14/envs/TST/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1224, in _execute_context
cursor, statement, parameters, context
File "/apps/anaconda/4.6.14/envs/TST/lib/python3.6/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py", line 1080, in do_executemany
cursor.executemany(statement, parameters)
UnicodeEncodeError: 'ascii' codec can't encode character '\xea' in position 23: ordinal not in range(128)
目前我正在使用python3.6测试上面的代码,看到上面的错误。有没有人可以帮助解决这个问题?
package 版本:pandas-1.0.3 cx_oracle-6.4.1 sqlalchemy-1.3.5
UTF-8 中的 CSV 文件格式
(复制评论以作为解决方案的可见性)
解决方案是使用类似的东西:
import cx_Oracle
e = create_engine(
"oracle+cx_oracle://un:pw@connstr...",
connect_args={
"encoding": "UTF-8",
"nencoding": "UTF-8"
}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.