2016-05-14 68 views
1

我需要從Google工作表中拉出用戶名和附加信息,然後每週向用戶發送一次。我寫了一個非常不雅的解決方案,我將在下面附上。我確信可以通過寫得很好的循環和一些邏輯來大大減少它。我很感激任何向正確的方向推動。兩天前我開始編寫這個程序,但沒有編程知識,請原諒任何明顯的錯誤!從實時Google表格中提取數據併發送電子郵件

EMAIL問題: 我需要在每個主題行中放入每個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」附加和個人擴展爲一個變量,我可以插入許多電子郵件。

+0

你能告訴我們你的電子表格是什麼樣子嗎?顯然使用一些虛假的數據,但與您的真實數據格式完全相同。同時顯示您希望從此電子表格中看到的輸出類型的示例 – Keatinge

+0

您必須在開玩笑吧...您認真張貼了電子表格的圖片。將電子表格公開或將其上傳到某處。甚至可以將其導出爲csv並在此處發佈明文。除了圖片之外的任何東西 – Keatinge

回答

1

在這裏,我花了很長時間終於使用你的數據進行設置,並設置了一個使用gspread的oauth,但之後它非常簡單。

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]。它循環,直到它沒有個人擴展命中一行。這將適用於任何數量的電子郵件。

+0

不客氣。只是好奇,你的原始數據是多少行,你硬編碼的數字? – Keatinge

相關問題