2012-03-12 69 views
2

我在这里有一个小问题。所以,我正在撰写一些关于众所周知的REST API的调用。一切都进展顺利,除了我希望所有响应都以列表形式显示(这对我来说更好)。我的功能是这样的:Python:显示为列表问题httplib.HTTPMessage

import sys, httplib 

HOST = "api.sugarsync.com" 
API_URL = "https://api.sugarsync.com" 

def do_request(xml_location): 
     request = open(xml_location,"r").read() 
     webservice = httplib.HTTPS(HOST) 
     webservice.putrequest("POST", "authorization", API_URL) 
     webservice.putheader("Host", HOST) 
     webservice.putheader("User-Agent","Python post") 
     webservice.putheader("Content-type", "application/xml") 
     webservice.putheader("Content-type", "application/xml") 
     webservice.putheader("Accept", "*/*") 
     webservice.putheader("Content-length", "%d" % len(request)) 
     webservice.endheaders() 
     webservice.send(request) 
     statuscode, statusmessage, header = webservice.getreply() 
     result = webservice.getfile().read() 
     return statuscode, statusmessage, header 
     return result 

do_request('C://Users/my_user/Documents/auth.xml') 

我习惯了,用split(),但在这种情况下,结果是这样的:

[201, 'Created', <httplib.HTTPMessage instance at 0x0000000001F68AC8>] 

嗯,我还需要第三个对象(例如httplib.HTTPMessage在0x0000000001F68AC8>)被显示为列表,以提取其中的一些数据。

在此先感谢!

回答

0

httplib.HTTPMessage有点像字典,这里是一个示例:

import httplib 
from cStringIO import StringIO 

h = httplib.HTTPMessage(StringIO("")) 
h["Content-Type"] = "text/plain" 
h["Content-Length"] = "1234" 

print h.items() 

你只需要调用它的功能项目(),它将返回头

列表