Парсинг полных имен из списка имен - PullRequest
0 голосов
/ 14 ноября 2018

Я использую namesparser для извлечения полных имен из списка имен.

from namesparser import HumanNames
names = HumanNames('Randy Heimerman, James Durham, Nate Green')
print(names.human_names[0])

Namesparser работает хорошо в большинстве случаев, но приведенный выше пример зависает.Я полагаю, что это потому, что имя «Рэнди» включает «и», который namesparser рассматривает как разделитель.

Когда я перемещаю имя Рэнди в конец строки, печатается правильное имя (Джеймс Дарем),Однако, если я попытаюсь напечатать одно из двух других имен, будут возвращены неправильные строки.

Любые идеи о том, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 14 ноября 2018

Я думаю, вам следует использовать запятую , в качестве разделителя.

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/, в котором он принимает строку, состоящую из единственного имени, вышеприведенное все равно будетработа не проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...