python在sqli中使用pickled对象

2024-09-30 10:42:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当动态的大对象,我想序列化并存储在我的sqlite数据库中。使用pickle模块,我把它变成了一个字符串,但是我发现我必须对它做一个字符串替换来更改单引号,以便将它存储到数据库中。当我把它拿出来,我就把它解开。我刚开始使用pickle和sqlite,这至少是有效的,但是这真的是正确的方法吗?还是有一种正确的方法来处理我没有看到的问题?在

menu = pickle.dumps(menuOb)
menu = menu.replace("'", "''")
#sql statement stuff

Tags: 模块对象方法字符串数据库sqlitesql序列化
1条回答
网友
1楼 · 发布于 2024-09-30 10:42:40

不要替换任何字符,只需插入一个SQL参数:

cursor.execute('INSERT INTO sometable VALUES (?, ?)', (id, pickle.dumps(menuOb))

SQL参数负责正确引用。在

相关问题 更多 >

    热门问题