我有以下块来编写xml标记。有时名称已经是正确的形式(也就是说,它不会出现错误),有时它不是
if 'Name' in title_data:
name = etree.SubElement(info, 'Name')
try:
name.text = title_data['Name']
except ValueError:
name.text = title_data['Name'].decode('utf-8')
有没有办法简化这个?例如,类似于:
name.text = title_data['Name'] if (**something**) else title_data['Name'].decode('utf-8')
答案 0 :(得分:1)
我假设你想避免为你想要设置的每个元素编写类似的代码。这有尝试治疗症状的气味,而不是原因,但如果没有别的,你可以简单地将其分解为辅助功能:
def assign_text(field, text):
try:
field.text = text
except ValueError:
field.text = text.decode("utf-8")
# ...
if "Name" in title_data:
name = etree.SubElement(info, "Name")
assign_text(name, title_data["Name"] or None)