通過接口方式查詢網絡設備上的一些參數,之前運維時都是直接在linux服務器上用curl實現,相對比較簡單。但是要python自動化腳本實現,curl命令就沒那麼好用了。
比如:
curl -k -u user:password https://192.168.254.4:8100/api/tmcm/2.0/bandwidth_pack_license_key| json_reformat
這時候會返回所需要獲取的值。
如果用python,就要調用urllib2這個庫了。自己嘗試着封裝了一個url查詢函數,用於達到上述curl命令同等效果。
1、首先要導入相應的庫。
import json,urllib2
2、定義函數,輸入url返回對應數值,並做好異常處理。
def connTmcm(uri):
try:
url = "https://192.168.254.4:8100"
username = "user"
password = "password"
passwordMgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
passwordMgr.add_password(None, url, username, password)
handler = urllib2.HTTPBasicAuthHandler(passwordMgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
if bool(uri) != False:
url += uri
response = urllib2.urlopen(url)
lbList = response.read()
jlist = json.loads(lbList)
return jlist
except:
info = sys.exc_info()
lbList = getAllAttrs(info[0]) + getAllAttrs(info[1])
return lbList
3、調用函數
lbLicenseDict = connTmcm('/api/tmcm/2.0/bandwidth_pack_license_key')