Отображение двух выходных переменных из функции генератора - PullRequest
0 голосов
/ 08 мая 2018

Код следующий

def filee(filename):
    cpu = "iso.3.6.1.4.1.2021.10.1.3.1 = STRING:"
    newline = "\n"
    quotes = '"\n'
    file = open(filename)
    lineno = 0
    for line in file:
        lineno += 1
        linestriptime = line[line.find("(")+1:line.find(")")]
        linestripload = (line.strip(cpu + newline + '\n').replace('\"', ''))
        v = lineno % 2
        if v == 0:
            load = float(linestripload)
            yield (timestamp, load)
        else:
            timestamp = int(linestriptime)

listyield = filee("snmpfile.txt")

mappedload = {timestamp : load for (timestamp, load) in listyield}

print mappedload

Проще говоря, я хочу отобразить временную метку и загрузить переменные yield из функции генератора вместе, но каким-то образом команда print mappedload всегда дает мне пустой словарь. Почему это происходит и как я могу отобразить две переменные вместе?

РЕДАКТИРОВАТЬ: я включил эту строку кода, печать значения доходности работает отлично

print ("**************** TRAP LISTYIELD ***************")
for (timestamp, load) in listyield:
    print(timestamp, load)
print ("**************** END OF TRAP LISTYIELD ***************")

Результат

**************** TRAP LISTYIELD ***************
(201607, 0.62)
(203174, 0.55)
(203336, 0.55)
(203479, 0.51)
(203611, 0.51)
(203731, 0.51)
**************** END OF TRAP LISTYIELD ***************
{}
...