Python 从元组向函数发送多个值

Python 从元组向函数发送多个值,python,tuples,Python,Tuples,我有一个结构如下的元组: tuple = ('Art School', 'Berlin', 'John Morgan(School1-Ge/Berlin);Andrew Martin (School1-IT/Roma); Tom Jones(School1-USA/Chicago)') 每个人的结构都是这样的: John,Morgan(School name-Country-GE/City-Berlin) 我需要获得每个人的电子邮件地址,为此,我使用了一个函数,在该函数中,我发送了该人的

我有一个结构如下的元组:

tuple =   ('Art School', 'Berlin', 'John Morgan(School1-Ge/Berlin);Andrew Martin (School1-IT/Roma); Tom Jones(School1-USA/Chicago)')
每个人的结构都是这样的:

John,Morgan(School name-Country-GE/City-Berlin)
我需要获得每个人的电子邮件地址,为此,我使用了一个函数,在该函数中,我发送了该人的姓名作为参数

def get_email_address(name):
    if name is not '':
        try:
            sql = sql1%name
            cur.execute(sql)
        except Exception as e :
            print()
        txt = str(cur.fetchone())
        email = txt[2:len(txt)-3]
        return email
    return ''
其中
sql1=“”从email_表中选择邮件,其中NAME='%s'”

当元组中只有一个人时[2]工作正常,但当人数增加时,我只得到最后一个人的电子邮件地址


我的问题是如何将元组[2]中的所有值发送到电子邮件函数以获取所有人的电子邮件地址?

尝试拆分元组[2]:

tuple[2].split(';')
它将给出如下输出:

['John Morgan(School1-Ge/Berlin)', 'Andrew Martin (School1-IT/Roma)', ' Tom Jones(School1-USA/Chicago)']

现在,可以使用for循环通过此列表的元素进行迭代。

您应该将字符串拆分为多个名称。我想你可以在角色“;”上进行分割。修改后的代码如下所示:

tuple =   ('Art School', 'Berlin', 'John Morgan(School1-Ge/Berlin);Andrew Martin (School1-IT/Roma); Tom Jones(School1-USA/Chicago)')
names_combined = tuple[2]
names_split = names_combined.split(";")
for name in names_split:
    print(name)
    get_email_address(name)

我尝试了你的解决方案,还想把结果列在一个列表中。我有两个人在元组[2]中,但其中一个我没有收到电子邮件,因为那个人离开了,它不再在表中,但列表如下:['john]_morgan@gmail.com当我只有一个人不再工作时,我得到了['',''。所以每次我收到这个“,”我不明白为什么。我想你可以使用切片,对于每封电子邮件,你可以检查最后一个字符是“,”email[-1]=”,”并通过email=email[:,-1]删除最后一个字符你也可以参考这个,
tuple =   ('Art School', 'Berlin', 'John Morgan(School1-Ge/Berlin);Andrew Martin (School1-IT/Roma); Tom Jones(School1-USA/Chicago)')
names_combined = tuple[2]
names_split = names_combined.split(";")
for name in names_split:
    print(name)
    get_email_address(name)