Frage

In PY2 gab es

rv = xmlrpc.pastes.newPaste(language, code, None, filename, mimetype, private)

Ich erhalte Fehler: Erwartete ein Objekt mit der Pufferschnittstelle

Sie können keine Dokumente über XMLRPC und PY3 finden. Ich habe nur diesen Ausschnitt gefunden:

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="")

Aber ich bin immer noch verwirrt darüber ... meine Version verwendete viele Argumente, wo kann ich eine vollständige Beschreibung davon finden / Fix dafür?

Vielen Dank.

War es hilfreich?

Lösung

Diese Fehlermeldung bedeutet normalerweise, dass sie nach sucht str (Das ist Unicode in Python 3), nicht bytes . Wie im Beispiel müssen Sie das Argument in Bytes dekodieren. Vielleicht:

rv = xmlrpc.pastes.newPaste(language, code.decode(), None, filename, mimetype, private)

Aber es ist schwer zu sagen, was das Problem ist, ohne Ihren Code zu sehen.

Andere Tipps

In Python 3. xmlrpclib wurde in zwei Module aufgeteilt, xmlrpc.client und xmlrpc.server.

Die Dokumente für 3.2.1 finden Sie unter:

http://docs.python.org/release/3.2.1/library/xmlrpc.client.html

http://docs.python.org/release/3.2.1/library/xmlrpc.server.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top