Когда я имею дело с типами данных, которые напрямую не поддерживаются Google App Engine, такими как словари или пользовательский тип данных, я обычно принимаю удобную PickleProperty
.
from google.appengine.ext import db
import pickle
class PickleProperty(db.Property):
def get_value_for_datastore(self, model_instance):
value = getattr(model_instance, self.name, None)
return pickle.dumps(value)
def make_value_from_datastore(self, value):
return pickle.loads(value)
После объявления класса PickleProperty
в модуле commons.py
вы можете использовать его для хранения пользовательских данных примерно так:
from google.appengine.ext import db
from commons import PickleProperty
class Tw(db.Model):
tags = PickleProperty()
ip = db.StringProperty()
entities = []
for city in lst_of_cities:
dict_info = hw12.twitter(city)
entity = Tw()
entity.tags = dict_info
entity.ip = self.request.remote_addr
entities.append(entity)
db.put(entities)
Чтобы восстановить данные, нажмите:
entity.tags