リモートサーバーに接続してXMLファイルからデータを取得できるように、以下のスクリプトを作成しました。私はいくつかのデバイスで問題をスキップできるようにいくつかのエラー処理を追加しました。何らかの理由で、スクリプトが401メッセージを返すと、ループ全体が壊れ、「csvファイルを正しく読み込めませんでした」というメッセージが表示されます。私は例外を処理する他の方法を試したが、それは他の時点で失敗するだろう。これに適切に対処する方法に関する情報? def version
でリクエストを使用する際のPythonエラー処理
#!/usr/bin/python
import sys, re, csv, xmltodict
import requests, logging
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
def version(ip, username, password):
baseUrl = "https://" + ip
session = requests.Session()
session.verify = False
session.timeout = 45
print "Connecting to " + ip
try:
r = session.get(baseUrl + '/getxml?location=/Status', auth=(username, password))
r.raise_for_status()
except Exception as error:
print err
doc = xmltodict.parse(r.text)
version = str(doc['Status']['@version'])
def main():
try:
with open('list.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
version(row['ip'], row['Username'], row['Password'])
except Exception as error:
print ValueError("Could not properly read the csv file \r")
sys.exit(0)
if __name__ == "__main__":
main()
私はそれを試したと思っていましたが、私はそれを元に戻して完全に機能しました。 401処理、接続処理なし!ありがとう! – yusof