我是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对我来说不是很清楚)? 如何为城市或街道设置一个简单的变量?
答案 0 :(得分:5)
您可以type(variable name)
。
答案 1 :(得分:2)
让我们重新格式化输出以便于阅读:
<<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文档以了解(我是一个非SOAP用户,甚至不是新手)。
您真正想知道的是如何使用该结果。在我看来,如果你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