各位高手好,最近有個需求,就是將google sheet視為一個資料庫,然後製作一個問答機器人,從line發送訊息後,在google sheet資料庫裡找問題,然後回應相對應的答案,網路爬了文,找到了這篇https://medium.com/@ctosib/linebot-with-google-api-2dd720f93ded
def gettotal():
apikey={Youe API KEY}
getvalueurl='https://sheets.googleapis.com/v4/spreadsheets/{Your sheet ID}/values/sheet1!A:C?key=%s' % (apikey)
res = requests.get(getvalueurl)
data = res.content
jsondata = json.loads(data)
values = jsondata['values']
請問1
values = jsondata['values']後面的'values'是指sheet裡面的values欄位嗎?
之前有看到另外一篇教學有使用到foreach ($data['feed']['entry'] as $item)
這裡也需要做這個判斷嗎?
請問2
如何取得apikey?
感謝各位高手
問題1-[values = jsondata['values']後面的'values'是指sheet裡面的values欄位嗎?]的回答:
參考API簡介,回傳的response格式如下:
{
"range": string(選擇的sheet range,格式類似 *Class Data!A2:E* ),
"majorDimension": enum(Dimension)(以列ROWS為主或是以欄位COLUMNS 為主,沒設定的話預設是ROWS ),
"values": [
array(讀取到的資料,是sheet的values沒錯,假設您的Range設定A-E,會回傳A-E Column的資料)
]
}
不太清楚您說的['feed']['entry']的意思,想請問另一篇文章的連結.
但我們倒是可以針對values做以下判斷
# 如果沒有資料的話,回傳沒資料,有資料的話印各欄位出來
if not values:
print('No data found.')
else:
print('Name, Major:')
for row in values:
# Print columns A and E, which correspond to indices 0 and 4.
print('%s, %s' % (row[0], row[4]))
API Response的參考文件:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values
問題2-[如何取得API KEY]的回答:
參考以下順序操作
連結如下
https://developers.google.com/sheets/api/quickstart/python