我有一个相当动态的大对象,我希望序列化并存储在我的sqlite数据库中。使用pickle模块,我把它变成了一个字符串,但发现我必须在它上面做一个字符串替换来更改单引号,以便将它存储到数据库中。当我拿出它时,我只是撤消它。我是新手使用泡菜和sqlite,这至少有效,但这是否是正确的方法,或者是否有正确的方法处理这个我没有看到的?
menu = pickle.dumps(menuOb)
menu = menu.replace("'", "''")
#sql statement stuff
答案 0 :(得分:2)
不要替换任何字符,只需插入SQL参数:
cursor.execute('INSERT INTO sometable VALUES (?, ?)', (id, pickle.dumps(menuOb))
SQL参数会为您正确引用。