用python調用webservice接口,並對ArrayOfString進行處理


一、首先寫一個ArrayOfString轉化成list的函數

這里主要針對比較簡單的webservice,沒有嵌套的

參考:https://www.pianshen.com/article/2473663801/

先將ArrayOfString轉化成dict字典,key是string,value是一長串的我們需要的信息

然后再把dict字典轉化成list列表

 

這里使用到suds庫中的sudsobject,sudsobject中有個函數是asdict可以將Array Of String處理成dict或list

 

from suds import sudsobject

def get_ArrayOfString_value(array, info):
    ''' webserveice接口調用會返回ArrayOfString,將其轉化為python可以使用的dict'''
    getArray = array  # array就是webservice調用后獲取的結果ArrayOfString
    getDict = sudsobject.asdict(getArray)
    getList = getDict.get('%s' % info)  # 返回指定鍵的值
    return getList

 

二、調用webservice接口

soap_client2.py
from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import

from get_ArrayOfString_value import get_ArrayOfString_value

url = 'http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl'

# 接口要求在被調用時顯式地指定調用標准
imp=Import('http://www.w3.org/2001/XMLSchema',
           location='http://www.w3.org/2001/XMLSchema.xsd')
imp.filter.add('http://WebXml.com.cn/')

client=Client(url,plugins=[ImportDoctor(imp)])
#print(client)
result=client.service.getWeather('北京')
#print(result)

result_list=get_ArrayOfString_value(result,'string')
#print(result_list)
print(result_list[4])

 

獲取的結果

result_list[4]
今日天氣實況:氣溫:27℃;風向/風力:東北風 2級;濕度:56%

 

通過    print(client)    可以查詢到webservice的method和相應參數有

Methods (6):
            getRegionCountry()
            getRegionDataset()
            getRegionProvince()
            getSupportCityDataset(xs:string theRegionCode)
            getSupportCityString(xs:string theRegionCode)
            getWeather(xs:string theCityCode, xs:string theUserID)

通過    print(result)    打印出調用函數查詢出的值

(ArrayOfString){
   string[] = 
      "直轄市 北京",
      "北京",
      "792",
      "2020/07/02 15:07:50",
      "今日天氣實況:氣溫:27℃;風向/風力:東北風 2級;濕度:56%",
      "紫外線強度:最弱。",
      "中國人民保險中暑指數:無中暑風險,天氣舒適,令人神清氣爽的一天,不用擔心中暑的困擾。
健臻·血糖指數:易波動,氣溫多變,血糖易波動,請注意監測。
穿衣指數:熱,適合穿T恤、短薄外套等夏季服裝。
洗車指數:不宜,有雨,雨水和泥水會弄臟愛車。
紫外線指數:最弱,輻射弱,塗擦SPF8-12防曬護膚品。
",
      "7月2日 雷陣雨轉中雨",
      "21℃/29℃",
      "東北風小於3級",
      "4.gif",
      "8.gif",
      "7月3日 雷陣雨轉多雲",
      "20℃/26℃",
      "東北風轉東南風小於3級",
      "4.gif",
      "1.gif",
      "7月4日 多雲轉雷陣雨",
      "21℃/28℃",
      "西南風轉西風小於3級",
      "1.gif",
      "4.gif",
      "7月5日 雷陣雨",
      "21℃/29℃",
      "東風小於3級",
      "4.gif",
      "4.gif",
      "7月6日 多雲",
      "22℃/30℃",
      "南風小於3級",
      "1.gif",
      "1.gif",
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM