Python-分割由空格和逗号分隔的名称字符串

时间:2019-12-10 16:18:09

标签: python django

我有一个API可以将我的程序输入到django多对多模型字段中。我数据库中个人的姓名由分开的名字和姓氏构成。但是,API正在发送大量的名称,这些名称的结构被构造为字符串列表:"Jones, Bob Smith, Jason Donald, Mic"(姓氏-逗号-空格-名字-新姓氏-等等)

我如何以允许我过滤并将特定用户添加到多对多字段的方式分隔此字符串?

谢谢!

2 个答案:

答案 0 :(得分:2)

此答案排除了姓氏或名字包含空格的情况(这种情况要复杂得多,因为您在单词的左边和右边都带有空格)。

您需要将-comma-space-替换为不带空格的内容(因为两个不同名称之间也要有一个空格)。

string = "Jones, Bob Smith, Jason Donald, Mic"

names = []
for name in string.replace(', ', ',').split(' '): 
    name = name.split(',')
    last_name = name[0]
    first_name = name[1]
    names.append((last_name, first_name))
names

输出:
[('Jones', 'Bob'), ('Smith', 'Jason'), ('Donald', 'Mic')]

答案 1 :(得分:1)

您可以使用正则表达式:

s = "Jones, Bob Smith, Jason Donald, Mic"

list(re.findall(r'(\S+), (\S+)', s))
# [('Jones', 'Bob'), ('Smith', 'Jason'), ('Donald', 'Mic')]