Can I store a python dictionary in google's BigTable datastore without serializing it explicitly?

后端 未结 3 796
别跟我提以往
别跟我提以往 2021-02-11 09:20

I have a python dictionary that I would like to store in Google\'s BigTable datastore (it is an attribute in a db.Model class).

Is there an easy way to do t

3条回答
  •  暖寄归人
    2021-02-11 10:08

    I assume that when you need to be able to reach the dict, it's all-at-once? You don't have to get values from inside the dict while it's in the datastore?

    If so, you'll have to serialize, but don't have to use pickle; we use simplejson instead. Then retrieving is a simple matter of overriding toBasicType(), sort of like this:

    class MyModel(db.Model): #define some properties, including "data" which is a TextProperty containing a biggish dict def toBasicType(self): return {'metadata': self.getMetadata(), 'data': simplejson.loads(self.data)}

    Creation involves calling MyModel(...,simplejson.dumps(data),...).

    If you're already pickling, that may be your best bet, but simplejson's working pretty well for us.

提交回复
热议问题