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)