我有一个获得肥皂反应的观点(使用肥皂水)
我得到的输出格式如下:
('birthdate', None)('updated', datetime.date(2014, 7, 11))('connected_to', Test1,Test2)
我的观看代码是这样的:
def view_webservice(request):
#Url to WSDL file
url = 'https://www.domain.com/webservices.nsf/MemberService?WSDL'
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
doctor = ImportDoctor(imp)
client = Client(url, username='****', password='****', doctor=doctor)
user_id='000001'
result = client.service.readMember(userId=user_id)
return HttpResponse(result) #Output: ('birthdate', None)('updated', datetime.date(2014, 7, 11))('connected_to', Test1,Test2)
我尝试过这样的值:
birthdate = result.get('birthdate')
(错误:MemberRead实例没有属性'get')birthdate = result('birthdate')
(错误:MemberRead实例没有调用方法)
获取价值的正确方法是什么?
result
的追溯是:
(MedlemRead){
birthdate = None
updated = 2014-07-11
connected_to = "Test1,Test2"
}
答案是:result.birthdate
答案 0 :(得分:0)
SOAP是简单的对象访问协议,因此你得到的东西就是对象。这就是为什么WSDL对要发送的值的类型以及期待的内容有如此严格的定义。
幸运的是,suds
和其他SOAP库会为您处理平凡的细节,并返回一个正确类型的完全动画对象。
要访问任何值,您需要将响应视为对象;这意味着在你的情况下答案是result.birthdate
。
请记住,返回的对象也将具有正确的数据类型。因此,如果您期望自定义嵌套对象,则必须正确访问它。