Python / Django удалить текст в переменной - PullRequest
0 голосов
/ 08 июня 2019

at my views.py У меня есть следующая строка

encrypted_token_message = encryption_key.encrypt(PGPMessage.new(token_message), cipher=SymmetricKeyAlgorithm.AES256)

, которая создает сообщение PGP с информацией о версии, подобной этой

----- BEGIN PGP MESSAGE-----

Версия: XYZ

Как удалить / заменить эту строку версии?

, если я попытаюсь:

encrypted_token_message_pretty = (encrypted_token_message.replace('Version: XYZ', 'Version: XXX'))

я вернусь:

'PGPMessage' object has no attribute 'replace'

Спасибо и всего наилучшего

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Это и объект, а не сама строка.Вы можете вызвать определенный атрибут для него, чтобы заменить номер версии следующим образом -

encrypted_token_message_pretty._attribute_name.replace('Version: XYZ', 'Version: XXX')

Вы также можете найти список возможных атрибутов, используя encrypted_token_message_pretty.__dict__

0 голосов
/ 08 июня 2019

Как указано в документации PGPy , метод encrypt возвращает экземпляр PGPMessage.Причина, по которой вы можете преобразовать этот объект в str, заключается в том, что он переопределяет специальный метод __str__.

В любом случае, replace - это метод str, а не PGPMessage.Поэтому, если вы хотите заменить Version:, преобразуйте ваше сообщение в строку, а затем замените версию.

encrypted_token = str(encryption_key.encrypt(PGPMessage.new(token_message), cipher=SymmetricKeyAlgorithm.AES256))  # Gets the string representing the newly created message
encrypted_token_message_pretty = encrypted_token.replace('Version: XYZ', 'Version: XXX')  # encrypted_token is now a string, you can replace whatever you want

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