У меня есть код, работающий в Standar GAE с использованием NDB, и код, работающий в гибком окружении с использованием библиотеки хранилища данных Google Cloud. Оба имеют доступ к одним и тем же объектам.
У меня проблемы с ndb.JsonProperty. Насколько я читал, эти свойства хранятся как blob, поэтому я попытался смоделировать это свойство с помощью облачной библиотеки. Перед сохранением значения я делаю следующее:
value_to_store = json.dumps(value, separators=[',',':'])
value_to_store = base64.b64encode(value_to_store)
И наоборот, когда я читаю свойство:
read_value = base64.b64decode(from_db_value)
read_value = json.loads(read_value)
В таких ситуациях все работает нормально:
Insert using NDB ---> Read using Cloud Library
Insert using Cloud Library ---> Read using Cloud Library
Но терпит неудачу, когда:
Insert using Cloud Library --> Read using NDB
Как правильно хранить такие свойства, чтобы они были совместимы с NDB?
Спасибо.