I want to store a dict/dictionary in a model. There is no native DictProperty. However there are workarounds.
- Encode it somehow (for example with pickle) and store it as a blob.
- Use an Expando model and store your key-values with setattr(yourmodel, key, value). You can get your dict later with yourmodel.dynamic_properties(). See also delattr. This seems to trigger encoding bugs for non-ascii keys.
- Store keys and values separately with two StringListProperty. Combine them to build a dict with dict(zip(keylist, valuelist)).
1 comment:
We can write a custom Property class to pickle (and compress) any serializable Python object (dictionaries included).
Here's an example: http://thesweeheng.wordpress.com/2009/11/16/gae-storing-serializable-objects-in-datastore/
Post a Comment