python: - IndexError: индекс списка вне диапазона при преобразовании списка в словарь - PullRequest
0 голосов
/ 26 сентября 2019

Идея состоит в том, чтобы получить вывод «netsh wlan show interfaces» в словарь, чтобы значения можно было выбирать на основе ключа.

Наблюдаемая ошибка:

IndexError: индекс списка вне диапазона

import subprocess
results = subprocess.check_output("netsh wlan show interfaces")
results = results.decode("ascii")
results = results.replace("\r","")
ls = results.split("\n")
ls = ls[3:]
dict = {}
temp = []

for i in ls:
    temp = i.split(":")
    m = temp[0].strip()
    dict[m] = temp[1].strip()

print(dict)

1 Ответ

1 голос
/ 26 сентября 2019

Не может быть ":" в каждой строке выходных данных команды, поэтому вы должны использовать оператор if, чтобы убедиться, что он работает, прежде чем предположить, что в списке, возвращаемом i.split(":"), содержится более одного элемента:

for i in ls:
    temp = i.split(":", 1)
    if len(temp) > 1:
        m = temp[0].strip()
        dict[m] = temp[1].strip()
...