我正在使用pyhdb
连接到Hana数据库,并且正在使用pandas
读取csv。当我尝试遍历数据帧后逐行插入时,出现错误。如何将csv中的所有行插入HANA数据库?
代码:
import pyhdb
import csv
import pandas as pd
connection = pyhdb.connect(
host="xxx.xx.xx.xx",
port=26444,
user="user",
password="pass"
)
cursor = connection.cursor()
cols = ['VBELN','MATNR','PODREL','LFIMG']
df = pd.read_csv("D:\LIPS.csv",usecols=cols,dtype=str)
for index,row in df.iterrows():
cursor.execute("INSERT INTO dbo.LIPS (VBELN, MATNR, LFIMG, PODREL ) VALUES (?,?,?,?)",
row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL'])
TypeError:execute()需要2到3个位置参数,但是6个是 给
答案 0 :(得分:1)
请使用
(row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL'])
代替
row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL']
它应该可以解决您的问题。
答案 1 :(得分:0)
execute方法中的参数应以不以逗号分隔的元组形式传递。
我也不是专家,但我认为将参数标记为%s 比将其标记为更好 ?
在下一步中可能有用的方法:请记住将游标.commit()对数据库所做的更改。