【发布时间】:2017-03-18 11:10:52
【问题描述】:
我正在尝试加载作为 Python 2.7 库的结果的数据 - pg8000 查询 AWS Redshift 表。
首先,我在 Redshift 表中查询结果,并在包含列表中值的元组中提供这些结果。
例子:
value_tuple = ([datetime.date(2016, 10, 2), 1, 1, 123123], [datetime.date(2016, 10, 2), 1, 2, 3131312])
我想将这些值插入另一个表,但在创建插入语句时遇到了一些问题。我愿意单独插入所有值,但我宁愿一次性插入所有值。
我正在使用的表如下所示:
| date_column | value_1 | value_2 | value_count |
| 2016-10-01 | 1 | 2 | 300 |
首先我尝试创建一个只使用元组内的单个列表的更新查询
update_query = """insert into my_schema.my_table_to_update
values %s
""" % str(value_tuple[0])
这样update_query就变成了:
'insert into my_schema.my_table_to_update\n values [datetime.date(2016, 10, 2), 1, 1, 123123]\n '
当我对表运行更新查询时,我收到此错误:
pg8000.core.ProgrammingError: (u'ERROR', u'42601', u'syntax error at or near "["', u'70', u'/home/rdsdb/padb/src/pg/src/backend/parser/parser_scan.l', u'699', u'yyerror', u'', u'')
我认为这意味着我不能使用结果的列表格式插入到表格中。
将这些数据插入 Redshift 的一种功能性且最好是高效的方法是什么?
【问题讨论】:
标签: python postgresql amazon-redshift pg8000