python - 使用 Jaydebeapi 将 Pandas DataFrame 写入 Teradata 数据库表给出错误
问题描述
我正在尝试使用 Jaydebeapi 将熊猫数据框写入 Teradata 数据库。我能够轻松地从数据库中读取数据,但在写入时遇到问题。
代码:
import jaydebeapi
import pandas as pd
case_detail_server ='server_url'
server_name= 'servername'
user ='xyz'
password ='****'
jars= ['/anaconda3/lib/tdgssconfig.jar','/anaconda3/lib/terajdbc4.jar']
#jars= ['/anaconda3/lib/terajdbc4.jar']
jclassname_case_detail='com.teradata.jdbc.TeraDriver'
teradata_url='jdbc:teradata://server_url/DBS_PORT=1025,TMODE=ANSI,CHARSET=UTF8'
conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',teradata_url,{'user': user, 'password': password},jars)
curs = conn.cursor()
方法一:Pandastable 要写 => df_out
for row in df_out.head().iterrows():
curs.execute("INSERT INTO TD_table(column1, column2) VALUES(?,?)", row)
错误 1
Error
---------------------------------------------------------------------------
Error
Traceback (most recent call last)
<ipython-input-390-8067f51cb5e3> in <module>
1 for row in df_out.head().iterrows():
----> 2 curs.execute("INSERT INTO CTD_table(column1, column2) VALUES(?,?)", row)
/anaconda3/lib/python3.6/site-packages/jaydebeapi/__init__.py in execute(self, operation, parameters)
492 def execute(self, operation, parameters=None):
493 if self._connection._closed:
--> 494 raise Error()
495 if not parameters:
496 parameters = ()
Error:
方法二:
resultset=[]
for column1,column2 in df_out:
try:
resultset.append((column1,column2))
except AttributeError:
pass
curs.executemany("INSERT INTO CTD_table(column1, column2) VALUES (?,?)",resultset)
错误 2
ValueError: too many values to unpack (expected 2)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-392-71473191f932> in <module>
1 resultset=[]
----> 2 for column1,column2 in df_out:
3 try:
4 resultset.append((column1,column2))
5 except AttributeError:
ValueError: too many values to unpack (expected 2)```
解决方案
推荐阅读
- java - 尝试创建一个对象数组,数组的长度和数组中的对象都由用户确定
- python - 在 mypy 中需要一个特定类型的列表
- git - 如何解决致命问题:无法访问“https://github.com/MTaha57/Build-Portfolio-.git/”:请求的 URL 返回错误:403
- python - 我尝试使用 datetime 和 Clock.schedule_interval 方法制作秒表来打印倒计时,但由于某种原因它不起作用
- webpack - 使用 Webpack 的 ProvidePlugin 为 worker 指定不同的模块?
- flutter - 如何在 Flutter 中过滤 Json 列表
- python - 使用 HL7APY 仅从 HL7 消息中过滤段
- php - 使用 PHP、Ajax、jQuery 将当前 DOM 保存到服务器上的文件?
- c - 找出图中的总边 (C)
- r - GPS 点在由其他 GPS 点组成的折线上的投影