我使用pyhdb连接到Hana数据库,并使用pandas读取csv。当我试图在遍历dataframe之后逐行插入时,我会得到一个错误。如何将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个
发布于 2019-04-22 15:47:32
请使用
(row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL'])而不是
row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL']它应该能解决你的问题。
发布于 2018-08-23 14:04:38
execute方法中的参数应以元组形式传递,而不是以逗号分隔。
我也不是专家,但我认为用%s标记参数比用%s标记更好
在接下来的步骤中,这可能是有用的:记住要对数据库所做的更改是cursor.commit()。
https://stackoverflow.com/questions/51987444
复制相似问题