抱歉标题错误。但我的问题很“简单”。我有这个:
if "unit" in pin.attrib:
test_dict["pins"].append({
"type": pin.attrib["type"],
"unit": pin.attrib["unit"],
"name":pin.text
})
else:
test_dict["pins"].append({
"type": pin.attrib["type"],
"name":pin.text
})
因为并非所有元素都具有属性[“unit”]。如果需要检查多个属性(或它们的组合),这种方式会变得非常麻烦。
(基本上我想要的是这样的:
伪代码:
test_dict["pins"].append({
"type": pin.attrib["type"],
if "unit" in pin.attrib: "unit": pin.attrib["unit"],
"name":pin.text
})
这可能吗?
最佳答案
你可以这样做:
test_dict["pins"].append(dict(
{'name': pin.text},
**{k: pin.attrib[k] for k in ['type', 'unit'] if k in pin.attrib}
))
关于python3.5+您可以使用以下语法:
test_dict["pins"].append({
** {k: pin.attrib[k] for k in ['type', 'unit'] if k in pin.attrib},
"name": pin.text
})
关于python - 当不确定它包含哪些属性时,将已解析的 XML 中的元素添加到字典中的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681989/