我有一本字典,我想附加到另一本字典的HIGHSEVERITY鍵上。
vulnsBySeverity={"HIGHSEVERITY":"", "MEDIUMSEVERITY":"", "LOWSEVERITY":""}
for result in json_object['results']:
for vuln in result['vulnerabilities']:
if vuln["severity"] == "high":
print("Its high!: {}".format(vuln))
vulnsBySeverity["HIGHSEVERITY"].update(vuln)
但是,當我運行最后一行時,它給了我一個錯誤:
AttributeError: 'str' object has no attribute 'update'
我想要做的是將vuln(字典)的值附加到字典鍵vulnsBySeverity["HIGHSEVERITY"]但得到那個錯誤?請注意,這本詞典vulnsBySeverity將有更多1 vuln我試圖附加到HIGHSEVERITY鍵的內容。
uj5u.com熱心網友回復:
該.update()方法適用于 a dict,但是vulnsBySeverity["HIGHSEVERITY"]是一個字串(來自初始化)
就您而言,我認為您不需要這種方法。一個簡單的=應該可以解決問題:
vulnsBySeverity["HIGHSEVERITY"] = vuln
如果多個vuln可能具有“高”優先級,您也可以考慮使用串列:
vulnsBySeverity["HIGHSEVERITY"] = []
for result in json_object['results']:
for vuln in result['vulnerabilities']:
if vuln["severity"] == "high":
vulnsBySeverity["HIGHSEVERITY"].append(vuln)
如果您在分配之后修改 vuln,請注意這些情況下的可變性。(vuln.copy()在這種情況下使用)
注意:正如您的評論中提到的,您可以初始化vulnsBySeverity["HIGHSEVERITY"]以使用,.update()但如果多個vuln具有“高”優先級,則這將不起作用(僅考慮最后一個。由于更新,先前的將被覆寫)
注意:如果您使用串列解決方案,您也可以使用串列理解:
for result in json_object['results']:
vulnsBySeverity["HIGHSEVERITY"] = [vuln for vuln in result['vulnerabilities'] if vuln["severity"] == "high"]
uj5u.com熱心網友回復:
問題是字典的值vulnsBySeverity是一個空字串。字串型別沒有update方法。我認為串列字典會更好。并將vuln字典附加到串列中,如下所示。
vulnsBySeverity = {"HIGHSEVERITY": [], "MEDIUMSEVERITY": [], "LOWSEVERITY": []}
for result in json_object['results']:
for vuln in result['vulnerabilities']:
if vuln["severity"] == "high":
print("Its high!: {}".format(vuln))
vulnsBySeverity["HIGHSEVERITY"].append(vuln)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386393.html
上一篇:將pandas.series中的浮點范圍映射到字典中的字串并保存到資料幀
下一篇:如何“取消參考”字典?
