背景
- 毎朝の日課として明日の献立は何?と壁の献立表を確認している
- 「すぐーる」に献立のPDFが毎月来る
- せっかくなら2人分をサーマルプリンタから印刷してそこで確認したい
試してみた
PDFを読み取ってデータ化
- ChatGPTにPDFを添付して下記のプロンプトで読み込ませる
- プロンプト
子どもの献立です。 スプレッドシートに転記したく日付(YYYY/MM/DD形式)、曜日、献立をtsvで記載したいので、文字起こしして一覧化してください。
pythonでスプレッドシートの「A」シートと「B」シートからA列の今日の日付(YYYY/MM/DD形式)の行のデータを取ってきたい
- 出来たコード
import gspread
from google.oauth2.service_account import Credentials
from datetime import datetime, timedelta
SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"]
creds = Credentials.from_service_account_file("service_account.json", scopes=SCOPES)
gc = gspread.authorize(creds)
SPREADSHEET_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
sh = gc.open_by_key(SPREADSHEET_ID)
tomorrow = datetime.now().date() + timedelta(days=1)
tomorrow_str = tomorrow.strftime("%Y/%m/%d")
def get_menu(sheet_name):
ws = sh.worksheet(sheet_name)
rows = ws.get_all_values() # 2次元リストで全取得[web:12][web:30]
header = rows[0]
data_rows = rows[1:]
date_col = 0 # A列
menu_col = 2 # C列
menus = []
for row in data_rows:
if len(row) <= menu_col:
continue
if row[date_col] == tomorrow_str:
menus.append(row[menu_col])
return menus
kodomo1_menus = get_menu("A")
kodomo2_menus = get_menu("B")
print("XXの明日の献立:", kodomo1_menus)
print("XXの明日の献立:", kodomo2_menus)
- gspreadをpip install
- credentialを取得して格納
スプシIDをいれて実行
いつも通りの手順で、サーマル出力+iPhoneのショートカットへ

振り返り
- データ作成の部分が手間になりそうだが、このレベルの作業であれば月1でもやっていけそう
- 今後は嫁さんも学校の先生なので嫁さんの献立表も入れて、それを見て夕飯の献立を決めるという流れができそう
- サーマルプリンタの活用が1歩進んだ
