【问题标题】:Pulling Data from a Live Google Sheet and Emailing It从实时 Google 表格中提取数据并通过电子邮件发送
【发布时间】:2016-05-14 15:55:50
【问题描述】:

我需要从 Google 表格中提取用户名和扩展名,然后每周通过电子邮件将其发送给用户。我写了一个非常不雅的解决方案,我将附在下面。我敢肯定,通过编写良好的循环和一些逻辑,它可以大大减少。我会很感激朝着正确的方向轻推。两天前我开始在零编程知识的情况下工作,所以请原谅任何明显的错误!

电子邮件问题: 我需要在每个主题行中放入每个 row_number([3])+'obfuscated.com',然后将 row_number([1]) 插入每个正文。

编辑:为澄清起见,我只是手动手动写入每行变量。用户数量每周都在变化,但我最多写了 40 个,因为它永远不会超过这个数量。

import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
json_key = json.load(open('obfuscated'))
scope = ['https://spreadsheets.google.com/feeds']
credentials =        ServiceAccountCredentials.from_json_keyfile_name('obfuscated.json',
scope)
gc = gspread.authorize(credentials)

sh = gc.open_by_key('obfuscated')
worksheet = sh.get_worksheet(0)


row_1 = worksheet.row_values(2)
print(row_1[3]+'@obfuscated')
print(row_1[1])

row_2 = worksheet.row_values(3)
print(row_2[3]+'@obfuscated')
print(row_2[1])

对不起 - 这是 .csv https://www.dropbox.com/s/i5p3m32m2huiffr/example-march.csv?dl=0

@Racialz - 我需要附加“@obfuscated.com”的用户名和个人扩展名作为我可以插入到许多电子邮件中的变量。

【问题讨论】:

  • 您能告诉我们您的电子表格是什么样的吗?显然使用了一些虚假数据,但格式与真实数据完全相同。还显示您希望从此电子表格中看到的输出类型的示例
  • 你在开玩笑吧……你认真地张贴了电子表格的照片……将电子表格公开或上传到某个地方。或者甚至将其导出为 csv 并在此处发布明文。真的除了图片什么都没有

标签: python python-3.x google-sheets smtplib gspread


【解决方案1】:

你去吧,我花了很长时间才最终使用你的数据进行设置并设置一个 oauth 以与 gspread 一起使用,但之后就超级简单了。

currentRow = 2
while 1:
    thisRow = worksheet.row_values(currentRow)

    if (thisRow[1] == ""):
        break

    username = thisRow[3] + "@obfuscated.com"
    personalExtension = thisRow[1]

    #email sending code goes here
    print(username, personalExtension)
    currentRow += 1

您只需在索引[3] 处获取用户名,在索引[1] 处获取项目以获取个人扩展名。它循环直到遇到没有个人分机的行。这将适用于任意数量的电子邮件。

【讨论】:

  • 不客气。只是好奇,你原来的硬编码数字是多少行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
相关资源
最近更新 更多