我通过 psycopg2 运行以下语句(有效):
self.cursor.execute( """INSERT INTO """ + self.config.schema + """.parcel (
id,geometry) VALUES (%s, ST_GeomFromGML(%s))""", (self.id, self.geometry)
但现在我需要介绍一些动态,并想尝试这样的事情:
if multi:
mygeom = "ST_Multi(ST_GeomFromGml(" + self.geometry + "))"
else
mygeom = "ST_GeomFromGml(" + self.geometry + ")"
self.cursor.execute( """INSERT INTO """ + self.config.schema + """.parcel (
id,geometry) VALUES (%s, %s)""", (self.id, mygeom)
当然,这会失败很长时间,因为它将整个函数解析为转义字符串。有没有人对如何解析数据库函数以在执行语句中动态解析它们有任何经验,或者这是不可能的?