是否有更短的语法可以使用 psycopg2 将值插入到 postgres 表中?
问题:是否有更短的语法可以使用 psycopg2 将值插入到 postgres 表中? 我正在尝试使用 psycopg2 和 Python 2.7 将许多列插入到表行中。有没有办法缩短 INSERT 语法?我目前必须一遍又一遍地输入占位符 (%s),例如 VALUES(%s,%s,%s,...%s) 编辑:目前我有 tableCursor.execute('INSERT INTO "table"
·
问题:是否有更短的语法可以使用 psycopg2 将值插入到 postgres 表中?
我正在尝试使用 psycopg2 和 Python 2.7 将许多列插入到表行中。有没有办法缩短 INSERT 语法?我目前必须一遍又一遍地输入占位符 (%s),例如 VALUES(%s,%s,%s,...%s)
编辑:目前我有
tableCursor.execute('INSERT INTO "table" ("x1","x2","x3","x4")' +
'VALUES (%s,%s,%s,%s)', (val1,val2,val3,val4))
我想使用的不仅仅是占位符,但继续输入 %s 有点重复。
解答
没有。
如果您有足够的列这是一个问题,那么 (a) 您可能需要重新考虑您的模式设计,并且 (b) 您始终可以使用', '.join(['%s']*n)
其中n
是生成字符串的参数数量。
>>> ', '.join(['%s']*7)
'%s, %s, %s, %s, %s, %s, %s'
>>> 'INSERT INTO tablename(col1,col2,col3,col4,col5,col6,col7) VALUES (' + ', '.join(['%s']*7) + ');'
'INSERT INTO tablename(col1,col2,col3,col4,col5,col6,col7) VALUES (%s, %s, %s, %s, %s, %s, %s);'
我同意让psycopg
根据命名的列数自动推断VALUES
列表(如果您没有明确给出它)会很好。但是,它没有,而且很容易DIY。
更多推荐
已为社区贡献19912条内容
所有评论(0)