0

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

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

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

我在这里先向您的帮助表示感谢。

谢谢您的帮助。

但收到错误 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()
4

1 回答 1

2

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

但是,如果您仅为此使用 mongodb,我不建议您使用它。如果您真的只想以持久的方式保存他的 dict 并且只需要从 python 访问它,您不妨使用搁置http://docs.python.org/2/library/shelve.html

问题更新后更新:

我认为应该是

dbsession.update(set__token_store=pickle.loads(v))
于 2013-06-04T07:18:29.833 回答