使用Python编写CSV文件到Redshift

2024-05-20 16:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图执行下面的脚本时,我收到一个错误“too many arguments”,我的csv文件大约有28列30行。所有连接都工作正常,读取正确,没有其他问题,根据日志,我理解我不能在redshift中向表中写入超过2或3列

import psycopg2
import csv
import time
import datetime
import pandas as pd
import sys
reload (sys)
sys.setdefaultencoding('utf8')
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
psycopg2.extensions.register_type(psycopg2.extensions.UNICODEARRAY)
print('script sterts')
connect=psycopg2.connect(dbname='db',host='***********',port=5439,user='****',password='********')
cur=connect.cursor()
print('begin execute')
up_pgm_list = pd.read_csv ('/prod/user/home/dqe933/FNI.csv')
with open('/prod/user/home/dqe933/FNI.csv', 'Ur') as csvfile:
         spamreader=csv.reader(csvfile,delimiter=',') 
         for row in spamreader:
                 cur.execute("""INSERT INTO UD_INTERIM.dqe933_fni_new(col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,
          col12,col13,col14,col15,col16,col17,col18,col19,col20,col21,col22,col23,col24,col25,col26,col27,col28)values(?,?,?,
          ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""",*row)

print('complete')`enter code here`

Tags: csvimportregisterexecuteastypeconnectsys
1条回答
网友
1楼 · 发布于 2024-05-20 16:25:13

row不应解压缩。确保它是一个由28项组成的iterable。在

cur.execute("""INSERT INTO UD_INTERIM.dqe933_fni_new(col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,col15,col16,col17,col18,col19,col20,col21,col22,col23,col24,col25,col26,col27,col28) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)""", row)

相关问题 更多 >