2017-03-29 104 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)',讓我知道你得到了什麼結果。可能直接訪問你想要的字段。 –