Python, suds, управляйте ответом массива - PullRequest
4 голосов
/ 16 декабря 2010


Я использую библиотеку suds для получения списка продуктов из веб-службы.

Это пример кода:

from suds.client import Client
url = 'WSDLURL'
client = Client(url)
result = client.service.Research('value')

Результат содержит:

(ArrayOfProducts){
   Product[] = 
      (Product){
         Id = 218
         Code = "C024"
         Name = "test2"
         Avaiable = True
         UrlDownload = None
         MetaData = 
            (ArrayOfMetaData){
               MetaData[] = 
                  (MetaData){
                     CoderepositoryISO = "16701"
                     Title = "1ST"
                  },
            }
      },
      (Product){
         Id = 219
         Code = "C025"
         Name = "test3"
         Avaiable = True
         UrlDownload = None
         MetaData = 
            (ArrayOfMetaData){
               MetaData[] = 
                  (MetaData){
                     CoderepositoryISO = "16702"
                     Title = "2ND"
                  },
            }
      },
...

В python или suds существует способ прямого доступа к содержащимся в данных данным, циклически изменяющимся для продуктов с for?(например: Product.Id, Product.Code и т. д.)

1 Ответ

5 голосов
/ 16 декабря 2010

Отлично ... Благодаря Я.Ф. Себастьяну я нахожу правильный путь ... Это рабочий код:

from suds.client import Client
url = 'wsdl'
client = Client(url)
html_out = ""
result = client.service.Research('a')
for p in result.Product:
   print p.Id
   print p.Name
...