Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有一种方法可以跳过空的Google工作表值并继续关注下一行?包括部分工作脚本_Python_Python 3.x_Email_Google Sheets_Data Structures - Fatal编程技术网

Python 有没有一种方法可以跳过空的Google工作表值并继续关注下一行?包括部分工作脚本

Python 有没有一种方法可以跳过空的Google工作表值并继续关注下一行?包括部分工作脚本,python,python-3.x,email,google-sheets,data-structures,Python,Python 3.x,Email,Google Sheets,Data Structures,下面是一个python脚本,它将向同一行中列出的地址发送电子邮件。我的信息/消息在第2列,我的目标电子邮件地址在第6列。脚本正在运行。但是,当第6列(空白单元格)中没有电子邮件地址时,它会跳转到下一个可用的电子邮件地址,并为第2列发送错误的文本(该行中没有电子邮件地址时,它会发送第2列文本)。所以,发送了错误的消息。。。我能让它工作的唯一方法是,如果每个单元格中都有值,并且我不跳过第6列中的任何单元格。否则我不知道怎么做。是否有人知道如何修改脚本,以便我只能在有可用电子邮件地址时发送电子邮件,如

下面是一个python脚本,它将向同一行中列出的地址发送电子邮件。我的信息/消息在第2列,我的目标电子邮件地址在第6列。脚本正在运行。但是,当第6列(空白单元格)中没有电子邮件地址时,它会跳转到下一个可用的电子邮件地址,并为第2列发送错误的文本(该行中没有电子邮件地址时,它会发送第2列文本)。所以,发送了错误的消息。。。我能让它工作的唯一方法是,如果每个单元格中都有值,并且我不跳过第6列中的任何单元格。否则我不知道怎么做。是否有人知道如何修改脚本,以便我只能在有可用电子邮件地址时发送电子邮件,如果没有可用电子邮件地址则跳过,并确保只发送正确行中的值?这是我到目前为止的代码。另外,请参阅所附图片

编辑:我有一个半解。也许不是最优雅的。仍将感谢您的意见:

def emails(wks):
    for row in wks.get_all_records():
        if row["EMAIL"] and row != "":
            yield row["EMAIL"]

to_emails = list(emails(wks))


print(to_emails)

def message(wks):
    for row in wks.get_all_records():
        if row["MESSAGETEXT"] and row["EMAIL"] != "":
            yield row["MESSAGETEXT"]


to_message = list(message(wks))
print(to_message)
def emails(wks):
    for row in wks.get_all_records():
        if row["EMAIL"] and row != "":
            yield row["EMAIL"]

to_emails = list(emails(wks))


print(to_emails)

def message(wks):
    for row in wks.get_all_records():
        if row["MESSAGETEXT"] and row["EMAIL"] != "":
            yield row["MESSAGETEXT"]


to_message = list(message(wks))
print(to_message)
这将它分成两个列表。。。仍在测试此功能

此功能有效:

def emails(wks):
    for row in wks.get_all_records():
        if row["EMAIL"] and row != "":
            yield row["EMAIL"]

to_emails = list(emails(wks))


print(to_emails)

def message(wks):
    for row in wks.get_all_records():
        if row["MESSAGETEXT"] and row["EMAIL"] != "":
            yield row["MESSAGETEXT"]


to_message = list(message(wks))
print(to_message)