【发布时间】:2021-10-10 05:55:00
【问题描述】:
我目前正在编写一个 python 脚本,理论上它应该读取我一个 YAML 文件 (hostname_list) 并将内容保存为嵌套字典(称为相同的字典)。在下一步中,它应该遍历第二个字典的所有键(参见下面的示例)并在第三个字典中检查键“严重性”以及该键是否具有在开头的参数中给出的某个值。如果该参数与某个字典中的值相同,则它应该将第二个字典的键以及第三个字典的所有键和值以 json 格式打印到控制台中。
我的字典:
{"sap_landscape": #dict1
{"dctr1440": #dict2
{"hostname": "dctr1440", "SID": "TT", "Type": "Spo", #dict3
"Landscape": "RFK", "Severity": "SX", "Username": "adm",
"UserID": 93, "Global": null, "Cycle": 1},
"dctr1091": {"hostname": "dctr1091", "SID": "TT", "Type": "Spo", "Landscape":
"RFK", "Severity": "SX", "Username": null, "UserID": null,
"Global": null, "Cycle": 2},
"dctr1512": {"hostname": "dctr1512", "SID": "TT", "Type": "C",
"Landscape": "RFK", "Severity": "SBX", "Username": null,
"UserID": null, "Global": null, "Cycle": 1},
"dctr193": {"hostname": "dctr193", "SID": "TT", "Type": "I", "Landscape":
"RFK", "Severity": "SX", "Username": null, "UserID": null,
"Global": null, "Cycle": 2}
到目前为止我写的代码:
def main(severity):
with open(filename) as infile:
hostname_list = yaml.safe_load(infile)
for k in hostname_list['sap_landscape'].keys(): # i don't know if that is correct
for s in hostname_list['sap_landscape'][k].items(): since i am clueless what to do
after i read the file and saved it
as a dict
很抱歉,如果这不是很多工作,但我对 python 非常陌生,并且在字典方面非常挣扎。如果你有一个解决方案并且有一点时间,如果你能写一个简短的描述你是如何/为什么按照你的方式做这件事会很好,因为我想从我的错误中吸取教训。
提前感谢 :)
【问题讨论】:
-
请分享您想要的确切结果。
标签: python json dictionary filter