Невозможно сериализовать тип: - PullRequest
0 голосов
/ 27 сентября 2019

Я только в процессе перехода от старой версии Elasticsearch до 6.8.Все идет хорошо, за исключением того, что я получаю вышеуказанную ошибку при попытке обновить \ добавить запись.

Это мой код

if not isinstance(existing_es_doc, dict):
    esdoc_clean = existing_es_doc.to_dict()
else:
    esdoc_clean = existing_es_doc

r = es.update(index=index,  doc_type='product_set_change_log', id=self.isbn_id + '-%s' % self.api_id,
                          body={'doc': esdoc_clean, 'doc_as_upsert': True})

Полная ошибка

TypeError("Unable to serialize {'territories': [], 'salesRightsType': u'01'} (type: <class 'elasticsearch_dsl.document.InnerDoc'>)",))

Тип, на который он ссылается, - это InnerDoc, я вижу, что в диктовке esdoc_clean.

Как часть миграции этот импорт больше не действителен

from elasticsearch_dsl import InnerObjectWrapper

Я получаюмое тело из другого сервиса, поэтому я не могу изменить это

Это работало на более старой версии Elasticsearch

Кто-нибудь видел это раньше?

Спасибо

Грант

...