Я получаю ключевую ошибку при попытке доступа к некоторым вложенным данным JSON, потому что я изо всех сил пытаюсь распечатать ВТОРОЙ набор данных в ["updates"], см. Код ниже:
for url in URLs:
JSONdata = requests.get(url, cookies=cookies, verify=False) .json()
notifications = JSONdata["notifications"]
for JSONkey in notifications:
outDiscards = JSONkey["updates"]["outDiscards"]["value"]["avg"]["float"]
inDiscards = JSONkey["updates"]["inDiscards"]["value"]["avg"]["float"]
name = JSONkey["path_elements"][1]
interface = JSONkey["path_elements"][5]
print(name, interface, outDiscards, inDiscards, sep=',')
Данные JSON выглядят следующим образом, и я пытаюсь получить доступ к плавающему средству AVG для ключа ["outDiscards]" (прокрутите до конца, чтобы найти его):
{
"notifications": [
{
"timestamp": "1590228300000000000",
"path_elements": [
"Devices",
"ASDASDA23",
"versioned-data",
"interfaces",
"data",
"Ethernet6",
"aggregate",
"rates",
"1m"
],
"updates": {
"alignmentErrors": {
"key": "alignmentErrors",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"fcsErrors": {
"key": "fcsErrors",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"frameTooLongs": {
"key": "frameTooLongs",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"frameTooShorts": {
"key": "frameTooShorts",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"inDiscards": {
"key": "inDiscards",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"inErrors": {
"key": "inErrors",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"outErrors": {
"key": "outErrors",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
},
"symbolErrors": {
"key": "symbolErrors",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
}
}
},
{
"timestamp": "1590672660000000000",
"path_elements": [
"Devices",
"ASDASDA23",
"versioned-data",
"interfaces",
"data",
"Ethernet6",
"aggregate",
"rates",
"1m"
],
"updates": {
"inOctets": {
"key": "inOctets",
"value": {
"avg": {
"float": 2252589.403482577
},
"max": {
"float": 3062029.5123118195
},
"min": {
"float": 1716651.1165519762
},
"stddev": {
"float": 486507.3457503787
},
"weight": {
"float": 0.9999999999999999
}
}
},
"inUcastPkts": {
"key": "inUcastPkts",
"value": {
"avg": {
"float": 4924.985636262933
},
"max": {
"float": 6405.247375228221
},
"min": {
"float": 4027.16222744576
},
"stddev": {
"float": 856.3274693923914
},
"weight": {
"float": 0.9999999999999999
}
}
},
"outMulticastPkts": {
"key": "outMulticastPkts",
"value": {
"avg": {
"float": 0.03331537922781352
},
"max": {
"float": 0.09996021185548479
},
"min": {
"float": 0
},
"stddev": {
"float": 0.047115061840280935
},
"weight": {
"float": 0.9999999999999999
}
}
},
"outOctets": {
"key": "outOctets",
"value": {
"avg": {
"float": 532952.2820988153
},
"max": {
"float": 686277.7896707873
},
"min": {
"float": 453320.58138715214
},
"stddev": {
"float": 80364.91411229585
},
"weight": {
"float": 0.9999999999999999
}
}
},
"outUcastPkts": {
"key": "outUcastPkts",
"value": {
"avg": {
"float": 4409.95750691497
},
"max": {
"float": 5605.478585933741
},
"min": {
"float": 3652.11719308749
},
"stddev": {
"float": 677.6427171449172
},
"weight": {
"float": 0.9999999999999999
}
}
}
}
},
{
"timestamp": "1590444480000000000",
"path_elements": [
"Devices",
"ASDASDA23",
"versioned-data",
"interfaces",
"data",
"Ethernet6",
"aggregate",
"rates",
"1m"
],
"updates": {
"outDiscards": {
"key": "outDiscards",
"value": {
"avg": {
"float": 0
},
"max": {
"float": 0
},
"min": {
"float": 0
},
"stddev": {
"float": 0
},
"weight": {
"float": 1
}
}
}
}
},
Я продолжаю получать KeyError, потому что, если я распечатываю только ["updates"], он достигает только "SymbolErrors" в данных JSON, потому что он закрывается))), я не знаю, как для доступа ко второй части данных