Suds выдает исключение на "тип не найден"

Мы используем SUDS версии 1.1.1 и недавно начали получать исключение "Тип не найден", поскольку ответ на запрос содержит поле, отсутствующее в wsdl. Я попытался инициализировать клиент с помощью ключевого слова strict следующим образом, но исключение по-прежнему возникает:

client = Client(spec_path, strict=False, faults=False)

Есть ли какой-нибудь другой способ заставить suds игнорировать неизвестное поле, не создавая исключения, пожалуйста?

Не могли бы вы предоставить более подробную информацию (код) о вашей проблеме? Мне также было интересно, пробовали ли вы использовать пользовательский плагин, чтобы обойти проблему, что-то вроде:


class IgnoreUnknownFieldsPlugin(MessagePlugin):
    def unmarshalled(self, context):
        # Remove unknown elements before SUDS processes them
        if hasattr(context.reply, 'children'):
            known_elements = [el for el in context.reply.children if el.name in context.reply.__metadata__.sxtype.rawchildren]
            context.reply.children = known_elements

client = Client(spec_path, plugins=[IgnoreUnknownFieldsPlugin()], faults=False)
Вернуться на верх