【发布时间】:2021-03-12 04:32:21
【问题描述】:
目前,我可以使用其 api 从网站中提取硬盘状态列表。 我想精简我的结果,并从我的结果中返回密钥对“status”:“Degraded”或“status”:“Pred Fail”的数据。
这是没有任何解析的 json 的样子:
{
"results": [
{
"bytesPerSector": 512,
"description": "SSD",
"interfaceType": "RAID",
"manufacturer": "UNKNOWN",
"mediaType": "Fixed hard disk media",
"model": "OEM Genuine 500GB",
"name": "\\\\.\\PHYSICALDRIVE0",
"partitionCount": 1,
"serialNumber": "Notputting that in here",
"size": 500105249280,
"smartCapable": true,
"status": "OK",
"deviceId": taking this out as well,
"timestamp": 1573080987.0
},
目前,我已将结果精简为仅显示 ['interfaceType'],['manufacturer'],['model'],['status'];但是,我只想提取具有 ['status':'Degraded'] 或 ['status':'Pred Fail'] 作为硬盘驱动器状态的部分。 (如果这有意义?)
这是我目前的代码:
alerts = ''
for i in range (len(napialert['results'])):
ninjainterfaceType_str = json.dumps(napialert['results'][i]['interfaceType'], indent=2,)
ninjamanufacturer_str = json.dumps(napialert['results'][i]['manufacturer'], indent=2,)
ninjamodel = json.dumps(napialert['results'][i]['model'], indent=2,)
ninjastatus = json.dumps(napialert['results'][i]['status'], indent=2,)
alerts += (ninjainterfaceType_str + "\n" + ninjamanufacturer_str + "\n" + ninjamodel + "\n" + ninjastatus + "\n _____________________________\n")
print("Here are a list of Hard drive with manufacturer problems: " + alerts)
这是结果(但它会打印所有结果,而不仅仅是那些有故障状态的结果):
Here are a list of Hard drive with manufacturer problems: "RAID"
"UNKNOWN"
"OEM Genuine 500GB"
"OK"
_____________________________
"SATA"
"Western Digital"
"WDC WD1502FAEX-007BA0"
"OK"
_____________________________
"SATA"
"UNKNOWN"
"ADATA SP550"
"OK"
More below this...
如果有人有任何想法或建议可以尝试,请告诉我。
【问题讨论】:
标签: python json for-loop parsing