Как обработать исключение mapper_parsing_exception вasticsearch с использованием python3, когда сериализация JSON не выполняется? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть строка для вставки в ES:

{
    "51c4de1958eea2fcac53ce3c84cde7eb": {\"house_no\": \"10230110149035000038\"}"
}

У строки есть значение, которое больше поддерживаемого, в c_43 (упомянуто выше), и ошибка следующая:

'error': {
        'caused_by': {
            'reason': 'Numeric value (1.0230110149035e+19) out of range of long (-9223372036854775808 - 9223372036854775807)\n at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@900b0a4; line: 1, column: 2338]',
            'type': 'json_parse_exception'
        },
        'reason': 'failed to parse [c_43.number]',
        'type': 'mapper_parsing_exception'
    },
    '_index': 'e0399e012222b9fe70ec7949d1cc354f17369f20',
    '_type': 'latest',

Моя задача - исключить эту ошибку и продолжить.Код, где я хочу, кроме этой ошибки:

try:
    helpers.bulk(self.es, body)
    print("Indexed 500 docs")
    del body[:]
except exceptions.SerializationError:
    pass
except Exception as e:
    logging.info("Messed up data is: ")
    logging.info(parsed_es_data)
    raise ValueError(sys.exc_info())

Я не уверен, является ли SerializationError правильным способом сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...