python - 如果一组字符串为空,如何使用循环检查?
问题描述
我正在尝试遍历字符串(别名)循环以应用 unidecode,并避免在某些情况下没有别名单词的错误,我使用 if/else 检查是否有字符串或不是,所以我可以应用 unidecode。我尝试通过执行此代码检查单词的长度,但它一直说“列表”对象没有属性“元素”。我不确定我应该怎么做。
alias=record.findall("./person/names/aliases/alias")
alias_name=[element.text for element in alias]
if len(alias_name.element.text)!=0:
alias_names_str = ','.join(alias_name)
alias_names_str=unidecode.unidecode(alias_names_str)
else:
alias_name.element.text="NONE"
解决方案
不完全确定您要完成什么,但它看起来像一个 XML 或 HTML 解码器。
# alias is an iterable of elements
alias=record.findall("./person/names/aliases/alias")
# alias_names is a list of strings, you have already dereferenced the text
alias_names=[element.text for element in alias]
if len(alias_names)>0:
alias_names_str = ','.join(alias_names)
alias_names_str = unidecode.unidecode(alias_names_str)
else:
alias_names_str = "NONE"