2013-04-19 2 views
0

나는 sqlite 데이터베이스에 직렬화하고 저장하려는 상당히 큰 객체를 가지고 있습니다. 피클 모듈을 사용하여 문자열로 만들었지 만 문자열을 db에 저장하기 위해 작은 따옴표를 바꾸기 위해 문자열을 대체해야한다는 것을 알았습니다. 내가 그것을 꺼내면, 나는 단지 그것을 되돌립니다. 나는 pickle과 sqlite를 사용하는 것에 익숙하지 않다. 적어도 이것은 작동한다. 그러나 이것에 대해 알맞은 올바른 방법인가, 아니면 이것을 보지 못하게하는 정확한 방법이 있는가?python pickled objects with sqlite 사용

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

답변

2

그냥 SQL 매개 변수를 삽입, 모든 문자를 교체하지 마십시오 :

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

SQL 매개 변수가 당신을 위해 인용 올바른 돌봐.

+0

답변을 주셔서 감사합니다. 저는 분명히 SQL 멍청한 행동입니다. 내가 한 일은 어리석은 것처럼 보였고 훨씬 더 의미가 있습니다. –