跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[Python] 大佬们,请教一个 Python 下关于 duckdb 的数据导入很诡异的问题,困扰了我两天,不胜感激。


小天管理

已推荐帖子

大佬们,请教一个 Python 下关于 duckdb 的数据导入很诡异的问题,困扰了我两天,不胜感激。

背景: 最近在搞一个小爬虫,用到了 duckdb 需要在导入的时候进行去重更新,因为导入的时候跨越数据时间久远无法在代码中就实现去重,只能通过 duckdb 的数据库机制去重 表结构如下 CREATE TABLE IF NOT EXISTS ticai ( "一级类目" TEXT, "一级类目" TEXT, "人数" BIGINT, UNIQUE("一级类目", "一级类目"))

data_df 为一个 frame columns 为列名 placeholders 为占位符个数

代码: #拼接导入语句 INSERT OR REPLACE INTO 将现有行的每一列更新为要插入的行的新值 sql_str = f'"""INSERT OR REPLACE INTO ticai ({columns}) VALUES ({placeholders})"""' #duckdb 执行批量导入 con.executemany(sql_str, data_df.values.tolist())

症状: 使用拼接语句执行 con.executemany ()就一直报错,结果如下 duckdb.duckdb.ParserException: Parser Error: syntax error at or near """"INSERT OR REPLACE INTO ticai (""

但是使用打印出来的 sql_str 拼接语句就能执行成功 con.executemany("""INSERT OR REPLACE INTO ticai ("一级类目", "二级类目", "人数") VALUES (?, ?, ?)""", data_df.values.tolist()) 结果如下:<duckdb.duckdb.DuckDBPyConnection object at 0x000001586624C2F0>

超级诡异,我不是很精通 Python ,也木有在其他平台找到问题的症结,球球大佬们帮忙解答下

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...