【问题标题】:How can I check with a loop if a group of strings is empty or not?如果一组字符串为空,我如何检查循环?
【发布时间】:2021-06-29 11:24:05
【问题描述】:

我正在尝试遍历字符串(别名)循环以应用 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"

【问题讨论】:

  • 您提供的代码不完整。 record 是什么?
  • 对不起,这是一个 xml 文档的路径: import unidecode records= tree.xpath("/records/record") for record in records: 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"

标签: python string loops


【解决方案1】:

不完全确定您要完成什么,但它看起来像一个 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"

【讨论】:

    【解决方案2】:

    谢谢!是的,我想应用 unidecode 来删除这些字符串的变音符号。您的代码有所帮助,然后我需要更改一些细节并且它起作用了!

    非常感谢! :)

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 2012-03-23
      • 1970-01-01
      相关资源
      最近更新 更多