使用Python将数据插入Postgresql

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

我想在Postgresql TABLE中使用INSERT值。在我的python代码中,有两个返回值来自不同函数的ab。 a和b是tuples

喜欢,

a = ('cat', 'dog', 'tree')
b = ('city', 'town', 'road')

数据库表名称是description,有六列。我在用

cur.execute("INSERT INTO description VALUES(?,?,?,?,?,?)",(a + b))

我想在这个表中附加值。但它显示错误,Error syntax error at or near ","有没有其他方式或我应该从list转换为tuple

python postgresql
3个回答
0
投票

Python没有参数化查询的(单个)标准占位符值。 SQLite使用?,但MySQL和Postgresql驱动程序使用%s(适用于所有数据类型,而不仅仅是字符串):

cur.execute("INSERT INTO description VALUES(%s,%s,%s,%s,%s,%s)", (a + b))

0
投票

尝试使用%s作为格式说明符,它可以工作。


0
投票

正如Blender所说,你只需要用%s就可以了!但是既然你的数据上有一些动物,也许你可以使用pg数组在同一个领域存储这些动物类型!

create table description (a char(16), b char(16), c char(16), d char(16), e char(16), f char(16));

您可以通过以下方式轻松存储数据:

插入描述值('狗','猫','树','城市','城镇','道路')

但是,如果你的动物可能更重要,那么更好的方法是array

create table description2 (animals char(16)[], d char(16), e char(16), f char(16));

并把你的数据这样。

INSERT INTO description2 VALUES(ARRAY ['dog', 'cat', 'tree'], 'city', 'town', 'road');

然后您可以通过以下方式轻松获取数据:

select * from description2;

PG是很好的数据库,有很多type可以使用!

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