iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

Python Discord Bot(DC機器人)系列 第 13

Python Discord Bot#13 - 把GOOGLE 試算表(google sheet)當資料庫(二)

  • 分享至 

  • xImage
  •  

原本想要一篇解決的...
但因為步驟太多,要一直截圖,
圖的大小亂到我忍不住開第二篇,
如果前面還是有人不太了解,
大家可以用"google sheet"、"資料庫"、"api"、"json"等字眼查詢到相關內容,
但每個人做法不太一樣,
我個人的是不把試算表發布的那個,
因為我並不想要公開我的試算表。

而這篇將使用python 取得 goolge sheet 內容

準備:
1.前一篇 在憑證 > OAuth 2.0 下載的json放入(建議放入.data資料夾)
2.取得 試算表的ID (在試算表的/d/{Sheet ID}/edit#gid=0)
https://ithelp.ithome.com.tw/upload/images/20230912/20106071clwqt1GnBA.jpg


下載套件:

pip install gspread oauth2client

設定.env

GOOGLE_SHEET_ID="試算表的ID"

建立python file

這裡我取名 /src/googleSheet.py

import os
import gspread
from oauth2client.service_account import ServiceAccountCredentials

def sheet_init(sheetID):
    filePath = ".data/credentials.json" # 憑證json
    scopes = ["https://spreadsheets.google.com/feeds"]
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
     filePath, scopes)
    client = gspread.authorize(credentials)
    excel = client.open_by_key(os.getenv("GOOGLE_SHEET_ID"))
    return excel.worksheet(sheetID)


def get_sheet(sheetID):
    sheet = sheet_init(sheetID)
    return sheet.get_all_records()


def add_row_sheet(sheetID, data):
    sheet = sheet_init(sheetID)
    return sheet.append_row(data, table_range="A1")

main.py 呼叫

from src.googleSheet import get_sheet

print(get_sheet("測試資料庫"))

測試結果:
https://ithelp.ithome.com.tw/upload/images/20230913/201060711GW5JLn3pg.png

範例code
TAG: it_#13


上一篇
Python Discord Bot#12 - 把GOOGLE 試算表(google sheet)當資料庫(一)
下一篇
Python Discord Bot#14 - UI篇-Button
系列文
Python Discord Bot(DC機器人)31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言