Код следующий
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 ***************
{}