【问题标题】:ValueError on writing lxml text写入 lxml 文本时出现 ValueError
【发布时间】:2017-05-20 12:20:54
【问题描述】:

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

【问题讨论】:

    标签: python xml unicode lxml


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 2021-11-04
      • 2014-01-28
      • 1970-01-01
      • 2014-09-01
      • 2011-10-19
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多