繁体   English   中英

编写lxml文本时出现ValueError

[英]ValueError on writing lxml text

我有以下代码块来编写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')

我假设您要避免为要设置的每个元素编写类似的代码。 这有尝试治疗症状而不是原因的味道,但是如果没有别的,您可以将其分解为一个辅助函数:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM