从dict获得特定价值

时间:2014-07-15 08:05:14

标签: python

我有一个获得肥皂反应的观点(使用肥皂水)

我得到的输出格式如下:

('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"
 }    

编辑2:

答案是:result.birthdate

1 个答案:

答案 0 :(得分:0)

SOAP是简单的对象访问协议,因此你得到的东西就是对象。这就是为什么WSDL对要发送的值的类型以及期待的内容有如此严格的定义。

幸运的是,suds和其他SOAP库会为您处理平凡的细节,并返回一个正确类型的完全动画对象。

要访问任何值,您需要将响应视为对象;这意味着在你的情况下答案是result.birthdate

请记住,返回的对象也将具有正确的数据类型。因此,如果您期望自定义嵌套对象,则必须正确访问它。