xmlrpc newpaste - ожидаемый объект с интерфейсом буфера
-
25-10-2019 - |
Вопрос
В PY2 был
rv = xmlrpc.pastes.newPaste(language, code, None, filename, mimetype, private)
Я получаю ошибку: ожидал объект с интерфейсом буфера
Не могу найти никаких документов о XMLRPC и PY3. Я нашел только этот фрагмент:
p1 = subprocess.Popen(['gpg','--clearsign'], stdin = subprocess.PIPE, stdout=subprocess.PIPE)
p1.stdin.write(bytes(input, 'UTF8'))
output = p1.communicate()[0]
s = ServerProxy('http://paste.pocoo.org/xmlrpc/')
pasteid = s.pastes.newPaste('text',output.decode())
print ("http://paste.pocoo.org/raw/",pasteid,"/", sep="")
Но меня все еще смущают это ... моя версия использовала много аргументов, где я могу найти полное описание его / исправления для этого?
Спасибо.
Решение
Это сообщение об ошибке обычно означает, что он ищет str
(который является Unicode в Python 3), а не bytes
Анкет Как и в примере, вам нужно расшифровать аргумент, который находится в байтах. Может быть:
rv = xmlrpc.pastes.newPaste(language, code.decode(), None, filename, mimetype, private)
Но трудно сказать, в чем проблема, не видя вашего кода.
Другие советы
В Python 3. xmlrpclib
был разделен на два модуля, xmlrpc.client
а также xmlrpc.server
.
Документы для 3.2.1 можно найти по адресу:
http://docs.python.org/release/3.2.1/library/xmlrpc.client.html
http://docs.python.org/release/3.2.1/library/xmlrpc.server.html