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

Python向SQLite3的entities表插入数据时报参数不支持类型错误

错误原因
  • 你的entities表中type字段被定义为TEXT文本类型,仅支持存储字符串格式的数据
  • 你插入时传入的v是Python列表类型,SQLite3没有内置的列表对应存储类型,无法完成参数绑定,因此抛出InterfaceError异常
解决方案

根据你的业务使用场景,可选择以下两种方案:

场景1:将子列表整体作为单个字符串存储

如果你只需要把整个子列表的内容合并存储,后续读取后再拆分使用,可以先将列表拼接为分隔符分隔的字符串,再插入:

for v in type_list:
    # 用逗号拼接列表为字符串,也可以根据需求换成其他分隔符
    type_str = ','.join(v)
    cur.execute('INSERT INTO entities (type) VALUES (?)', (type_str,))
# 插入完成后需要提交事务才能持久化到数据库
conn.commit()

场景2:后续需要单独查询单个类型值

如果后续有按单个type值过滤查询的需求,建议一行存储一个type值,修改插入逻辑如下:

for idx, type_items in enumerate(type_list):
    # 这里的idx+1替换为你实际对应的tweet_id值,避免外键约束报错
    tweet_id = idx + 1
    for item in type_items:
        cur.execute('INSERT INTO entities (tweet_id, type) VALUES (?, ?)', (tweet_id, item))
conn.commit()

注意:你的表定义中tweet_id是关联tweets表的外键,如果tweets表中已经存在对应数据,需要替换上面的tweet_id为实际存在的关联ID,否则会触发外键约束异常。


内容的提问来源于stack exchange,提问作者Ms Y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:36:02