какой тип переменной - PullRequest
       19

какой тип переменной

1 голос
/ 07 марта 2011

Я очень новичок в Python. У меня есть следующий код:

from SOAPpy import WSDL

fichier_wsdl = 'http://geocoder.us/dist/eg/clients/GeoCoder.wsdl'
wsdl = WSDL.Proxy(fichier_wsdl)
callInfo = wsdl.methods['geocode']
ss = wsdl.geocode('1600 Pennsylvania Ave, Washington, DC.')
print(ss)

Результат:

IMPORT:  http://schemas.xmlsoap.org/soap/encoding/
no schemaLocation attribute in import
<<class 'SOAPpy.Types.typedArrayType'> results at 21824752>: [<SOAPpy.Types.structType item at 21818984>: {'city': 'Washington', 'prefix': '', 'suffix': 'NW', 'zip': 20502, 'number': 1600, 'long': -77.037684, 'state': 'DC', 'street': 'Pennsylvania', 'lat': 38.898748, 'type': 'Ave'}]

и я пытаюсь понять, какой тип имеет моя переменная ss (print (type (ss)) получает SOAPpy.Types.typedArrayType, который мне не очень понятен)? А как иметь простую переменную, для города или улицы?

Ответы [ 2 ]

5 голосов
/ 07 марта 2011

Вы можете просто сделать type(variable name).

2 голосов
/ 07 марта 2011

Давайте переформатируем этот вывод для удобства чтения:

<<class 'SOAPpy.Types.typedArrayType'> results at 21824752>:

[<SOAPpy.Types.structType item at 21818984>:
     {'city': 'Washington', 'prefix': '', 'suffix': 'NW', 'zip': 20502, 'number': 1600,
      'long': -77.037684, 'state': 'DC', 'street': 'Pennsylvania', 'lat': 38.898748,
      'type': 'Ave'
     }
 ]

Он говорит вам, какого типа ваша переменная: SOAPpy.Types.typedArrayType ... попробуйте прочитать документы SOAPpy, чтобы понять это (я не пользователь SOAPpy, даже не новичок).

Что вы действительно хотите знать, так это как использовать этот результат. Похоже, если вы делаете answer_dict = ss[0], вы можете получить доступ к таким полям, как это:

print answer_dict['city'] должен производить Washington и т. Д.

так что вы можете сделать

city = answer_dict['city']
street = answer_dict['street']
# et cetera

Обратите внимание, что ss с причудливым типом выглядит так, как будто он действует как список ... если ваш запрос имеет несколько ответов (отметьте len(ss)), вам нужно будет выполнить итерацию по списку:

for answer_dict in ss:
    process_each_answer(answer_dict) # substitute your code here
...