code_junkie

Can I pickle a python dictionary into a sqlite3 text field?

Nov 11th, 2011
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. pdata = cPickle.dumps(data, cPickle.HIGHEST_PROTOCOL)
  2. curr.execute("insert into table (data) values (:data)", sqlite3.Binary(pdata))
  3.  
  4. curr.execute("select data from table limit 1")
  5. for row in curr:
  6. data = cPickle.loads(str(row['data']))
  7.  
  8. # register the "loader" to get the data back out.
  9. sqlite3.register_converter("pickle", cPickle.loads)
  10.  
  11. p_string = p.dumps( dict(a=1,b=[1,2,3]))
  12. conn.execute('''
  13. create table snapshot(
  14. id INTEGER PRIMARY KEY AUTOINCREMENT,
  15. mydata pickle);
  16. ''')
  17.  
  18. conn.execute('''
  19. insert into snapshot values
  20. (null, ?)''', (p_string,))
  21. ''')
  22.  
  23. query = u'''insert into testtable VALUES(?)'''
  24. b = sqlite3.Binary(binarydata)
  25. cur.execute(query,(b,))
  26. con.commit()
Add Comment
Please, Sign In to add comment