You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Python中使用DuckDB时,如何处理SQL字符串的普通引号问题?

解决DuckDB INSERT语句的Python语法错误

你遇到的确实是引号冲突导致的语法错误:Python中用单引号'包裹字符串时,字符串内部的单引号会被解析为字符串的结束标记,从而打断SQL语句的结构,引发SyntaxError。

以下三种方法都可以解决这个问题:

  • 方法一:用双引号包裹整个SQL语句,内部保留单引号
import duckdb
con = duckdb.connect()
con.query('CREATE TABLE people(id INTEGER, name VARCHAR);')
con.query("INSERT INTO people VALUES (1, 'Mark'), (2, 'Hannes')")
  • 方法二:对SQL语句内部的单引号进行转义(添加反斜杠\)
import duckdb
con = duckdb.connect()
con.query('CREATE TABLE people(id INTEGER, name VARCHAR);')
con.query('INSERT INTO people VALUES (1, \'Mark\'), (2, \'Hannes\')')
  • 方法三:用三引号(单/双均可)包裹SQL语句,适合复杂多行SQL
import duckdb
con = duckdb.connect()
con.query('CREATE TABLE people(id INTEGER, name VARCHAR);')
con.query('''INSERT INTO people VALUES (1, 'Mark'), (2, 'Hannes')''')

内容的提问来源于stack exchange,提问作者Антон Попенко

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:23:17