python使用sqlite的pickled对象

时间:2013-04-19 15:58:21

标签: python sqlite pickle

我有一个相当动态的大对象,我希望序列化并存储在我的sqlite数据库中。使用pickle模块,我把它变成了一个字符串,但发现我必须在它上面做一个字符串替换来更改单引号,以便将它存储到数据库中。当我拿出它时,我只是撤消它。我是新手使用泡菜和sqlite,这至少有效,但这是否是正确的方法,或者是否有正确的方法处理这个我没有看到的?

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

1 个答案:

答案 0 :(得分:2)

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

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

SQL参数会为您正确引用。