如何保存具有值作为对象的字典

时间:2013-06-04 07:12:26

标签: python session dictionary dropbox mongoengine

bin如何在mongiengine中保存这种字典。

{'xnFH8XCJiwMRFu8A': <dropbox.session.OAuthToken object at 0x2e4efd0>,  
 '867s6bnwbg3kc':<dropbox.session.OAuthToken object at 0x2e50610>}

我正在尝试保存Dropbox访问令牌。

感谢您的帮助。

感谢您的帮助。

但是收到错误InvalidStringData。不知道我在哪里做错了。

代码段如下:

  #TOKEN_STORE is the above dictionary
  dbsession = DBsession.objects.get(oauth_token=oauth_token) # oauth_token is is request

  v = pickle.dumps(TOKEN_STORE, -1)
  print v # this prints proper binary string
  print pickle.loads(v) # this prints proper values

  dbsession.update(set__token_store=v) # this line fails and throws error on  
                                       #InvalidStringData


#DBSession Definition
# me is mongoengine
class DBSession(me.Document):
    oauth_token = me.StringField(required=True)
    token_store = me.BinaryField()

1 个答案:

答案 0 :(得分:2)

这显示了如何连接到mongodb以及如何在那里存储东西 Plz阅读:http://docs.mongoengine.org/en/latest/apireference.html#documents

如果您仅使用mongodb,我建议不要使用mongodb。如果你真的只想以持久的方式保存他的字典而你只需要从python访问它,你也可以使用shelve http://docs.python.org/2/library/shelve.html

问题更新后更新:

我认为应该是

dbsession.update(set__token_store=pickle.loads(v))