我有一个带有SQL插入语句的Python脚本,该语句将已解析的数据从文件插入到PostgreSQL表中。如果数据带有撇号,则执行失败。详细信息:
<name>RYAZAN'</name>
or
<name>CHYUL'BYU</name>
我是字符串时找到了解决方案->在撇号中添加额外的',以便在INSERT语句中将其转换为'RYAZAN'''
或'CHYUL''BYU'
。
但是如果我的值在列表中(来自python脚本),例如city = ["RYAZAN''", "CHYUL''BYU"]
,Python会自动将双引号而不是单引号引起来。结果是尝试插入
INSERT INTO City (uuid, name) VALUES (uuid_generate_v4(), unnest(array{city}))
SQL失败并出现错误
ERROR: column "RYAZAN''.." does not exist
因为sql读取双引号作为列名或其他名称。是否可以使用包含撇号的值插入ARRAY?
尝试使用$$ dollar-quoted strings
dollar-quoted strings