[PYTHON] Importieren Sie den von "Schedule-kun" erhaltenen Zeitplan in Google Kalender

Überblick

Mit dem obigen Beitrag habe ich den Zeitplan für die J League erhalten, daher möchte ich ihn nutzen. Wenn Sie es in die Kalender-App importieren können, die Sie jeden Tag verwenden, können Sie sich die Mühe ersparen, es einzeln einzugeben. Deshalb Erstellen Sie eine Datei in einem Format, das in Google Kalender importiert werden kann.

Informationen zum iCalendar-Format

Grundform

sample.ics


BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART;TZID=Asia/Tokyo:20200223T130000
DTEND;TZID=Asia/Tokyo:20200223T150000
SUMMARY;LANGUAGE=jp-JP:Abschnitt 1 Tag 3 FC Tokio
DESCRIPTION;LANGUAGE=jp-JP:Anstoß:13:00\n
Stadion: Aista\n
Verein:http://www.fctokyo.co.jp/\n
	JAL:https://www.jal.co.jp/\n
	ANA:https://www.ana.co.jp/\n
END:VEVENT
END:VCALENDAR

Code

schedule_all.py


import datetime
import pandas as pd

# 'https://data.j-league.or.jp/'Holen Sie sich aus dem Zeitplan Ergebnis von
data = pd.read_csv('./csv/Game_Schedule_2020.csv', sep=',', encoding='utf-8')

キャプチャ1.PNG

schedule_all.py


#Bereiten Sie eine lokale Datei vor, in der die Adressen der HP des Clubs erfasst werden
club = pd.read_csv('./csv/master_club_2020.csv', sep=',', encoding='utf-8')

Wir haben unsere eigenen Daten vorbereitet, um die Adressen der Vereine, gegen die wir spielen, in die detaillierten Daten aufzunehmen. キャプチャ2.PNG

schedule_all.py


yyyy = 2020
#Geben Sie den Teamnamen an, den Sie extrahieren möchten
team = data[(data['Zuhause'] == 'Teamname') | (data['Weg'] == 'Teamname')]

Ändern Sie den "Teamnamen" in den Teamnamen, den Sie erhalten möchten.

schedule_all.py


#Erstellen Sie eine feste Zeichenfolge
header = (r'BEGIN:VCALENDAR' + '\n'
            r'VERSION:2.0' + '\n')

footer = (r'END:VCALENDAR')

info = ('	JAL:https://www.jal.co.jp/\\n\n'
        '	ANA:https://www.ana.co.jp/\\n')

timezone = ';TZID=Asia/Tokyo'
language = ';LANGUAGE=jp-JP'

Erstellen Sie die Zeichenfolgen, aus denen die Vorlage besteht.

schedule_all.py


schedule_all = []

for i in range(len(team)):
    if team['KO Zeit'].iloc[i] == '● Unentschlossen ●':
        break
    #Erstellen Sie die folgenden Elemente für jeden Abschnitt aus bestimmten Teamdaten
    # start_datetime, end_datetime, section, home or away team, kick_off, stadium, club HP
    tmp_date = team['Spieltag'].iloc[i]
    tmp_date = str(yyyy) + '/' + tmp_date[:5]
    start_time = team['KO Zeit'].iloc[i]
    tmp_date_time = tmp_date + ' ' + start_time + ':00'
    tmp_dtstart = datetime.datetime.strptime(tmp_date_time, '%Y/%m/%d %H:%M:%S')
    tmp_dtend = tmp_dtstart + datetime.timedelta(hours=2)
    # start_datetime
    dtstart = tmp_dtstart.strftime('%Y%m%dT%H%M%S')
    # end_datetime
    dtend = tmp_dtend.strftime('%Y%m%dT%H%M%S')
    # section
    sec = team['Sektion'].iloc[i]
    # team name
    team_name = team['Weg'].iloc[i] if team['Zuhause'].iloc[i] == 'Teamname' else team['Zuhause'].iloc[i]
    # kick off
    kickoff = str(team['KO Zeit'].iloc[i])
    # stadium
    stadium = team['Stadion'].iloc[i]
    # club HP
    club_url = club[club['Abkürzung'] == team_name]['Offizielle Website-URL']

    #Erstellen Sie aus knotenbasierten Daten eine Zeichenfolge im iCalender-Format.
    begin = 'BEGIN:VEVENT'
    dstart = 'DTSTART' + timezone + ':' + dtstart
    dend = 'DTEND' + timezone + ':' + dtend
    summary = 'SUMMARY' + language + ':' + sec + ' ' + team_name
    description1 = r'DESCRIPTION' + language + ':' + 'Anstoß:' + kickoff + '\\n'
    description2 = r'Stadion:' + stadium + '\\n'
    description3 = r'Verein:' + club_url.values[0] + '\\n\n' + info
    end = 'END:VEVENT' + '\n'
    
    #Listen Sie die abschnittsweisen Daten auf
    contents = [begin, dstart, dend, summary, description1, description2, description3, end]
    schedule_all.append(contents)

schedule_all.py


#Erstellen einer Kalenderdatei
path = './csv/schedule_all_2020.ics'
with open(path, mode='a', encoding='utf-8') as f:
    f.write(header)
    for s in schedule_all:
        f.write('\n'.join(s))
    f.write(footer)

Durchlaufen Sie abschließend die abschnittsweise Liste, um eine Textdatei zu erstellen. (* Zur Erläuterung ist es in einen Schleifenprozess zum Erstellen von Abschnittsdaten und einen Schleifenprozess zum Erstellen einer Textdatei unterteilt.) 無題.png

Artikel, die ich als Referenz verwendet habe

Recommended Posts

Importieren Sie den von "Schedule-kun" erhaltenen Zeitplan in Google Kalender
Greifen Sie über die iOS-App auf Google Kalender zu
Holen Sie sich den neuesten Termin aus Google Kalender und benachrichtigen Sie jeden Morgen online
Importieren Sie "Sapporo City Household Garbage Collection-Tageskalender" in Google Kalender
Verschrotten Sie den Zeitplan von Hinatazaka 46 und spiegeln Sie ihn in Google Kalender wider
Generieren Sie tägliche Berichte aus Google Kalender
Holen Sie sich Urlaub mit der Google Kalender-API
Geben Sie den von der Oanda REST API in Python erhaltenen Wechselkurs in MongoDB ein
Ich möchte einen Slack-Bot, der das Gehalt eines Teilzeitjobs aus dem Zeitplan von Google Kalender berechnet und anzeigt!
Importieren Sie sie vorerst in jupyter
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert (Google Kalender Edition).