注册

执行Python脚本,通过SQLAlchemy、Pandas批量插入时报错

🇲 🇹 🇯 2025/07/17 232 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.4
【操作系统】:linux KylinOS-V10 SP3
【CPU】:8
【问题描述】*:执行Python脚本,通过SQLAlchemy、Pandas批量插入时报错:
Traceback (most recent call last):
File "/root/interface_12345/py/get_interface_data.py", line 163, in <module>
data_to_dameng_tmp(data,table_name,db_config)
File "/root/interface_12345/py/json_to_dm2.py", line 57, in data_to_dameng_tmp
df[["PRO_WO_CODE","ADDRESS","CREATE_TIME","TYPE","IS_END","CALL_TYPE","ACT_NAME","CONTENT"]].to_sql(table_name,engine,if_exists='replace',index=False,chunksize=5000)
File "/root/miniconda3/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
return func(*args, **kwargs)
File "/root/miniconda3/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
return sql.to_sql(
File "/root/miniconda3/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
return pandas_sql.to_sql(
File "/root/miniconda3/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
total_inserted = sql_engine.insert_records(
File "/root/miniconda3/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
return table.insert(chunksize=chunksize, method=method)
File "/root/miniconda3/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
num_inserted = exec_insert(conn, keys, chunk_iter)
File "/root/miniconda3/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
result = conn.execute(self.table.insert(), data)
File "/root/miniconda3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1415, in execute
return meth(
File "/root/miniconda3/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 523, in _execute_on_connection
return connection._execute_clauseelement(
File "/root/miniconda3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
File "/root/miniconda3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1837, in _execute_context
context.pre_exec()
File "/root/miniconda3/lib/python3.10/site-packages/dmSQLAlchemy-2.0.5-py3.10.egg/dmSQLAlchemy/dmPython.py", line 96, in pre_exec
File "/root/miniconda3/lib/python3.10/site-packages/dmSQLAlchemy-2.0.5-py3.10.egg/dmSQLAlchemy/dmPython.py", line 49, in _generate_out_parameter_vars
AttributeError: 'DmdbCursor' object has no attribute 'output_stream'

engine:
engine = create_engine(f"dm+dmPython://{db_config['user']}@{db_config['server']}:{db_config['port']}/",connect_args={'local_code':1,'connection_timeout':15,'password':db_config['password']})

环境:
dmPython 2.5.22
dmSQLAlchemy 2.0.5
SQLAlchemy 2.0.41

补充:
windows可以正常执行
服务器执行报错

回答 0
暂无回答
扫一扫
联系客服