使用Python将csv加载到hana数据库中

时间:2018-08-23 13:51:35

标签: python pandas csv hana

我正在使用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个是   给

2 个答案:

答案 0 :(得分:1)

请使用

(row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL'])

代替

row['VBELN'],row['MATNR'],row['LFIMG'],row['PODREL']

它应该可以解决您的问题。

答案 1 :(得分:0)

execute方法中的参数应以不以逗号分隔的元组形式传递。

我也不是专家,但我认为将参数标记为%s 比将其标记为更好

在下一步中可能有用的方法:请记住将游标.commit()对数据库所做的更改。