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

如何在Python中用SQLite修改数据库JSON字段值并保存?

解决SQLite中修改JSON字段并保存的问题

你用SELECT JSON_REPLACE(...)只能查询到修改后的结果,不会实际更新数据库。要实现修改并保存,得用UPDATE语句把处理后的JSON写回原字段。

正确的SQL语句

首先修正WHERE条件(如果表中没有单独的name字段,而是JSON里的Name,得用JSON_EXTRACT来匹配),然后执行UPDATE:

UPDATE "Profiles"
SET JsonData = JSON_REPLACE(JsonData, "$.Name", "Other name")
WHERE JSON_EXTRACT(JsonData, "$.Name") = "CarlRisinger20409@outlook.com"

如果你的Profiles表确实有单独的name字段(和JSON里的Name对应),那WHERE条件可以保留原来的,但优先推荐用JSON字段匹配更准确。

Python中完整实现代码

import sqlite3

# 连接数据库,替换成你的数据库路径
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()

# 执行更新语句,用参数化查询避免SQL注入
update_sql = '''
UPDATE "Profiles"
SET JsonData = JSON_REPLACE(JsonData, "$.Name", "Other name")
WHERE JSON_EXTRACT(JsonData, "$.Name") = ?
'''
cursor.execute(update_sql, ("CarlRisinger20409@outlook.com",))

# 提交事务是关键,不提交修改不会写入数据库
conn.commit()

# 关闭连接
cursor.close()
conn.close()

核心注意点

  • 必须调用conn.commit():SQLite默认是事务模式,所有修改仅在内存中生效,提交后才会写入磁盘。
  • 用参数化查询:既避免SQL注入风险,也能自动处理特殊字符的转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 05:37:10