在基于请求的脚本中使用生成器

问题描述 投票:0回答:0

我有一个从我的网络映射软件输出的 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 脚本更快的方法,并且遇到了生成器,但我不知道如何编写一个适合此脚本的生成器,或者是否有可能在这种情况下使用一个来加快速度。

我的代码没有任何问题......创建输出文件需要很长时间。

python python-requests generator
© www.soinside.com 2019 - 2024. All rights reserved.