2017-03-29 107 views
4

我能够连接到Mind Body API和运行一个简单的命令来获取所有客户端的数据如何处理API响应

from Helper.ClientService import ClientServiceCalls 

calls = ClientServiceCalls() 
clients = calls.GetAllClients() 
print(clients) 

服务器将这些信息回应:现在

(GetClientsResult){ 
    Status = "Success" 
    ErrorCode = 200 
    XMLDetail = "Full" 
    ResultCount = 4503 
    CurrentPageIndex = 0 
    TotalPageCount = 181 
    Clients = 
     (ArrayOfClient){ 
     Client[] = 
      (Client){ 
       MobileProvider = None 
       AppointmentGenderPreference = "None" 
       Gender = "Female" 
       IsCompany = False 
       LiabilityRelease = False 
       PromotionalEmailOptIn = True 
       CreationDate = 2017-02-23 00:00:00 
       Liability = 
        (Liability){ 
        IsReleased = False 
        AgreementDate = None 
        ReleasedBy = None 
        } 
       UniqueID = 100015484 
       ID = "100015484" 
       FirstName = "Sdfoij" 
       LastName = "[asodfj" 
       EmailOptIn = True 
       State = "CA" 
       Country = "US" 
       BirthDate = None 
       FirstAppointmentDate = 2017-03-03 00:00:00 
       HomeLocation = 
        (Location){ 
        SiteID = -99 
        BusinessDescription = ""The MINDBODY Health Club Demo is awesome." - Anonymous (but probably someone cool and smart)" 
        AdditionalImageURLs = "" 
        FacilitySquareFeet = None 
        TreatmentRooms = None 
        HasClasses = True 
        PhoneExtension = None 
        ID = 1 
        Name = "Clubville" 
        } 
       PhotoURL = "https://clients.mindbodyonline.com/studios/DemoAPISandboxRestore/clients/100015484_large.jpg?v=98" 
       IsProspect = False 
       Status = "Active" 
       ContactMethod = 1 
      }.... **and continue printing other client informations** 

    } 
} 

问题是我想从中提取这些信息,

Client Email, Client Name, Client Phone Number, Client Status (active or inactive), Client Birthday, Client Address, Most Recent Visit Date, Most Recent Visit Description, Start Date, Custom Field(s) 

但我不知道我可以使用什么库通过这个输出解析,我正在考虑美丽的汤,但我不是很确定,

我真的很新手与apis工作,所以如果任何人都可以给我一个想法如何做到这一点,这将是非常好的。

+0

同样在这里乔希,我真的很困惑如何处理这个api,无论如何,如果你有任何信息可以把我放在正确的轨道上,请不要犹豫提及它。谢谢 – Ayoub

+0

我的猜测是他们使用的是[SOAP](https://en.wikipedia.org/wiki/SOAP),因为其中一个ClientService使用了包suds。所以你可能想看一下XML解析器的响应。 –

+0

检出此链接[她](https://developers.mindbodyonline.com/Documentation/WorkingWithSOAP#xmldetail)它对XML响应有一点描述。 –

回答

3

好的,我在googs中搜索了mindbody WSDL,并找回了以下链接:https://api.mindbodyonline.com/0_5/SiteService.asmx?wsdl。从查看API示例中的代码,看起来他们肯定使用SOAP。我的建议是,你尝试以下方法:

from suds.client import Client 
from Helper.ClientService import ClientServiceMethods 
calls = ClientServiceMethods() 
clients = calls.GetAllClients() 
client_dict = Client.dict(clients) 

或者看看这个link采取的响应,并把它变成一个字典。

+0

从运行您的示例代码我得到TypeError:'NoneType'对象不可迭代 – Ayoub

+0

任何想法? – Ayoub

+0

嗯。好的,我没有这个API。所以我不能直接运行代码。这是我会建议的。运行'type(clients)'和'dir(clients)',让我知道你得到了什么结果。可能直接访问你想要的字段。 –