我有一个从我的网络映射软件输出的 URL 列表(存储在一个 csv 文件中)。下面的脚本将 URL 提供给“获取”请求,以便我可以检索数据(网络设备配置)并将其保存到 json 文件中。
import json, csv
import requests
from requests.auth import HTTPBasicAuth
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
device_url = []
device_details = []
with open('dev_locations.csv', 'r') as csv_file:
reader = csv.DictReader(csv_file)
for row in reader:
device_url.append(row['URL'])
headers = {'accept' : 'application/json'}
login = HTTPBasicAuth('admin', 'password')
for t in device_url:
s = requests.Session()
response = s.get(t, verify=False, auth=login, headers=headers)
nice_work = (response.json())
device_details.append(nice_work)
with open('device_details.json', 'w') as out_file:
json.dump(device_details, out_file, indent=3)
我有这个脚本的另一个版本,它将输出保存为 XML 而不是 json。他们都工作得很好。
我的问题是脚本需要超过 24 小时才能完成。我正在研究使 Python 脚本更快的方法,并且遇到了生成器,但我不知道如何编写一个适合此脚本的生成器,或者是否有可能在这种情况下使用一个来加快速度。
我的代码没有任何问题......创建输出文件需要很长时间。