我正在使用namesparser从姓名列表中提取全名。
from namesparser import HumanNames
names = HumanNames('Randy Heimerman, James Durham, Nate Green')
print(names.human_names[0])
Namesparser在大多数情况下都能很好地工作,但上面的示例已被挂断。我相信是因为名称“ Randy”包含“ and”,而名称解析器将其视为分隔符。
当我将Randy的名字移到字符串的末尾时,将打印正确的名字(James Durham)。但是,如果我尝试打印其他两个名称中的任何一个,则会返回错误的字符串。
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
我认为您应该使用逗号,
作为分隔符。
def print_names( name_string ):
return (name.strip() for name in name_string.split(","))
这是将您的字符串用逗号分割,然后在返回名称数组之前去除尾随和前导空格等的原因。
现在您有了名称生成器,可以将其传递给其他东西,例如:
humans = [HumanName(name) for name in print_names(name_string)]
但是话又说回来,我不知道您的类HumanNames / HumanName的真正含义,您也没有提出类定义。
如果您正在查看以下模块:https://pypi.org/project/nameparser/,其中它包含由单数名称组成的字符串,则上面的代码仍然可以正常工作。