Как преобразовать байты представления строки обратно в байты? - PullRequest
1 голос
/ 13 апреля 2009

Я использую SUDS для общения с веб-сервисом, написанным на C #. Служба получает URL, сканирует свою веб-страницу и возвращает содержимое в виде байта [].

его тип в SOAP:

<s:element minOccurs="0" maxOccurs="1" name="rawByte" type="s:base64Binary" />

примеры клиентских кодов:

>>> from suds.client import Client
>>> url = "http://WSServer/Service1.asmx?wsdl"
>>> client = Client(url)
>>> page = client.service.GetURLContent("http://www.google.co.uk")
>>> print page
(CrawlResult){
   crawStatus = "SUCC"
   rawByte = "PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb2 ... "

проблема заключается в том, как преобразовать rawByte из строки в байты, а затем объяснить его как текст с кодировкой (например, «ascii»).

Мне не ясно с этим.

Спасибо, Daniel.

Ответы [ 2 ]

3 голосов
/ 13 апреля 2009

Как говорит элемент SOAP, байты кодируются base64 .

Для декодирования используйте модуль python base64.

2 голосов
/ 13 апреля 2009

Мне нужно преобразовать его обратно в строку с помощью модуля binascii, например:

>>> btxt = binascii.a2b_base64(page.rawByte)

тогда btxt может рассматриваться как обычная строка.

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