pyodbc,一步创建并插入redshift表的方法

问题描述 投票:0回答:1

我最终希望构建一个脚本-1.将我登录到我的redshift集群-2.运行DROP TABLE IF EXISTS语句-3.重新创建表-4.将来自Pandas DataFrame对象的数据插入表中

我可以用2个脚本来完成它-一个完成步骤1-3,然后一个2d完成步骤4。我想知道是否可以在一个脚本中完成。在以下脚本中,我尝试使用2个游标来完成此操作-但没有运气。

import pyodbc 
import getpass
import pandas as pd
server = server name 
database = db
user = getpass.getuser() 
pwd = getpass.getpass("User Name : %s" % user) 
port = port
df = pd.read_csv("file.csv")
cnxn = pyodbc.connect('DRIVER={Amazon Redshift (x64)};SERVER='+server+';DATABASE='+database+';UID='+user+';PWD='+pwd+';Port='+port+'')
cursor1 = cnxn.cursor()
cursor1.execute("DROP TABLE IF EXISTS billtest2; CREATE TABLE billtest2 (symbols varchar(15), leverages int);")
cursor2 = cnxn.cursor()
# Insert DataFrame recrds one by one.
for index, row in df.iterrows():
    cursor2.execute("INSERT INTO billtest2 ([symbols],[leverages]) values(?,?)", row['symbols'], row['leverages'])
    cnxn.commit()
cnxn.close()

我已经匿名化了连接,但是连接有效-这仅仅是我想创建并插入一个看似无效的表的事实。

我是Python的新手,希望在此获得更多指导

python sql pandas pyodbc
1个回答
0
投票

您是否尝试过SQLAlchemy。

© www.soinside.com 2019 - 2024. All rights reserved.