2011-07-25 19 views
1

在PY2有XMLRPC newPaste - 預期與緩衝接口的對象

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

但我仍然感到困惑吧......用我的版本很多爭論,我在哪裏可以找到它的完整描述/修復呢?

謝謝。

+0

參數與您已經使用的參數相同。你只需要確保文本是'str',而不是'bytes'。 –

回答

4

即錯誤消息通常意味着它尋找str(它是Unicode在Python 3),而不是bytes。就像在這個例子中,你需要解碼以字節爲單位的參數。也許:

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

但是很難說沒有看到你的代碼是什麼問題。

+0

只有None和private non-str元素 – Cynede

+1

@nCdy:你能用一些非私有的例子複製它嗎?因爲那個錯誤正是我所看到的,如果'code'是字節而不是str。 –

+0

固定!謝謝 :) – Cynede

2

在Python 3. xmlrpclib已被分爲兩個模塊xmlrpc.clientxmlrpc.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

+1

問題中的片段與xmlrpc非常相關。這就是ServerProxy類的來源。 –

+0

嗯,它有幫助。 'output.decode()'是他需要用來糾正錯誤的那種東西。 –

+0

仍然不知道如何解決我的問題,但謝謝你的文檔。 – Cynede