2017-01-05 7 views
0

私はxmlタグを書くために次のブロックを持っています。時々名前が(それはそれはエラーではないだろう、されて)正しい形式で既にある、時にはそれがValueErrorでlxmlテキストを書く

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') 

答えて

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) 
関連する問題