redshift mysql_使用Python迁移redshift mysql

在尝试使用Python脚本将数据从MySQL迁移到Redshift时,遇到一个问题:当数据中存在空值(None)时,插入语句因逗号分隔导致语法错误。具体表现为None值与后续字段之间出现多余的逗号,引发psycopg2编程错误。解决方案需针对空值进行特殊处理,确保插入语句的正确性。
摘要由CSDN通过智能技术生成

嗨,我正在使用以下脚本将数据从mysql迁移到redshift。在mysql_table_name = 'clabDevelopment.KPI_kpireport'

mysql_cur = mysql_conn.cursor()

mysql_cur.execute('select * from %s where Date = "2018-01-01";' % mysql_table_name )

description = mysql_cur.description

rows = mysql_cur.fetchall()

# Insert data into Redshift

redshift_table_name = 'kpi_kpireport'

redshift_cur = redshift_conn.cursor()

insert_template = 'insert into %s (%s) values %s;'

column_names = ', '.join([x[0] for x in description])

values = ', '.join(['(' + ','.join(map(str, x)) + ')' for x in rows])

redshift_cur.execute(insert_template % (redshift_table_name, column_names, values))

我遇到的邮件问题是当值为空时:

^{pr2}$

就像None和CHG之间有“,,”,它会导致程序失败。在

错误如下:Traceback (most recent call last):

File "C:\Users\trackstarz\migration.py", line 20, in

redshift_cur.execute(insert_template % (redshift_table_name, column_names, values))

psycopg2.ProgrammingError: syntax error at or near ","

LINE 1: ...re_Costs, FBA_Fee) values (241325,2018-01-01,None,,CHG,USA,N...

^

[Finished in 2.0s]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值