Как получить доступ к zip-файлу, который хранится в байтовой переменной в Python 3? - PullRequest
0 голосов
/ 21 октября 2019

Я пишу сценарий Python, который использует веб-службу для доступа к некоторому XML-файлу, хранящемуся в zip-папке, с 3 другими XML-файлами: zipfolder / myxmlfile.xml

Веб-служба предоставляет метод "GetResponse », который можно использовать для получения сжатой папки в виде данных base64, как описано в документации.

Поэтому я использую этот метод следующим образом:

response = client.service.GetResponse()
  • "response", если класса "bytes". Разве это не должно быть base64, как описано в документации?

  • Как я могу получить доступ к моему xml-файлу, используя эту переменную, которая предположительно содержит данные zip-файла?

Ваша помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Когда я проверил свои «ответные» данные, я обнаружил, что это не base64, поэтому я Base64 закодировал их, а затем Base64 расшифровал. Наконец, я записал в zip-файл, и это сработало.

encoded = base64.b64encode(response)
decoded = base64.b64decode(encoded)
with open('myzipfile.zip', 'wb') as f:
 f.write(decoded)
0 голосов
/ 21 октября 2019

Попробуйте, используя base64:

import base64
bin = base64.b64decode(response)
with open('your_path/your_filename.zip', 'wb') as f:
    f.write(bin)
...