【问题标题】:Python: how to Insert value into table postgresql?Python:如何将值插入表 postgresql?
【发布时间】:2015-03-30 18:08:18
【问题描述】:

如何格式化字符串以将其插入到 postgresql 中的表中? 例如我有 sql:

req="INSERT INTO table_a values('%s','%s','%s','%s')"

价值观

values=["Socit d'Invest Variable", '6465', 'hg', 'fk_id']
cursor.execute(req,tuple(values))

我得到了错误:

psycopg2.ProgrammingError: syntax error at or near "Socit"
LINE 1: ...column0, column1, column2, column3) Values (''Socit d'Invest...

任何想法如何将字符串从使用单引号 ' 更改为双引号 "

【问题讨论】:

  • 您使用的是哪个版本的 psycopg2?它应该会自动为您转义。查看文档中的示例:initd.org/psycopg/docs/…
  • 格式化字符串的时候引用错误看答案

标签: python string postgresql psycopg2


【解决方案1】:

错误在请求中

req="INSERT INTO table_a values('%s','%s','%s','%s')"

必须不带引号'

req="INSERT INTO table_a values(%s,%s,%s,%s)"

【讨论】:

    【解决方案2】:

    我认为您需要使用反斜杠来转义字符串中的单引号以正确执行查询,因此请使用:

    values = ['Socit d\'Invest Variable', '6465', 'hg', 'fk_id']
    

    values = ["Socit d\'Invest Variable", '6465', 'hg', 'fk_id']
    

    应该可以工作

    【讨论】:

    • @m3asmi 使用req="INSERT INTO table_a values(%s,%s,%s,%s)" 怎么样?
    • @m3asmi 不错!我应该早点注意到:p
    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多