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

Python操作SQLite3如何将字典存入单条记录的单个字段

Python操作SQLite3存储字典到单个字段的实现方案

SQLite没有原生支持Python字典的存储类型,需要先将字典序列化为标准结构化字符串后再存储,JSON是最通用的序列化方案,无需额外依赖,解析成本低。

实现步骤

  • 导入Python内置的json模块
  • 存储数据时调用json.dumps(字典对象)将字典转换为JSON格式字符串,传入SQL执行语句
  • 读取数据时调用json.loads(读取到的JSON字符串)即可还原为原始字典结构

修改后的完整代码

import sqlite3
import json

a = "1"
b = "2"
c = "3"
d = "4"
user1 = {"id": 100, "name": "Rumpelstiltskin", "dob": "12/12/12", "item": [{"name": "sakthi"}]}

# 序列化字典为JSON字符串
ent_value = json.dumps(user1)

con = sqlite3.connect(database=r'data.db')
cur = con.cursor()
# 插入序列化后的字符串
cur.execute("INSERT INTO e_transations (eid,sl,id,datee,ent) VALUES (?,?,?,?,?)", (a,b,c,d,ent_value))
con.commit()

# 读取数据还原字典示例
cur.execute("SELECT ent FROM e_transations WHERE eid = ?", (a,))
query_result = cur.fetchone()
restored_user = json.loads(query_result[0])
# 验证还原结果
print(restored_user["item"]) # 输出 [{'name': 'sakthi'}]
con.close()

补充说明

如果使用SQLite 3.9及以上版本,建表时可将ent字段类型设置为JSON,SQLite会自动对插入的内容做JSON格式合法性校验,存储和读取逻辑和上述代码完全一致。
不要直接使用str(user1)将字典转为普通字符串存储,这种格式没有统一标准,后续反向解析为字典的难度高,容易出现格式错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:06:07