[PYTHON] Importez le calendrier obtenu à partir de "Schedule-kun" dans Google Agenda

Aperçu

Avec le post ci-dessus, j'ai eu le calendrier de la J League, alors j'aimerais en profiter. Si vous pouvez l'importer dans l'application de calendrier que vous utilisez tous les jours, vous pouvez vous éviter de l'entrer un par un. Donc Créez un fichier dans un format qui peut être importé dans Google Agenda.

À propos du format iCalendar

Forme basique

sample.ics


BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART;TZID=Asia/Tokyo:20200223T130000
DTEND;TZID=Asia/Tokyo:20200223T150000
SUMMARY;LANGUAGE=jp-JP:Section 1 Jour 3 FC Tokyo
DESCRIPTION;LANGUAGE=jp-JP:démarrer:13:00\n
Stade: Aista\n
club: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/'Obtenir à partir du résultat du calendrier de
data = pd.read_csv('./csv/Game_Schedule_2020.csv', sep=',', encoding='utf-8')

キャプチャ1.PNG

schedule_all.py


#Préparez un fichier local qui recueille les adresses du club HP
club = pd.read_csv('./csv/master_club_2020.csv', sep=',', encoding='utf-8')

Nous avons préparé nos propres données pour inclure les adresses des clubs contre lesquels nous jouons dans les données détaillées. キャプチャ2.PNG

schedule_all.py


yyyy = 2020
#Spécifiez le nom de l'équipe que vous souhaitez extraire
team = data[(data['domicile'] == 'Nom de l'équipe') | (data['Une façon'] == 'Nom de l'équipe')]

Remplacez le "nom de l'équipe" par le nom de l'équipe que vous souhaitez obtenir.

schedule_all.py


#Créer une chaîne fixe
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'

Créez les chaînes qui composent le modèle.

schedule_all.py


schedule_all = []

for i in range(len(team)):
    if team['Temps KO'].iloc[i] == '● Indécis ●':
        break
    #Créez les éléments suivants pour chaque section à partir de données d'équipe spécifiques
    # start_datetime, end_datetime, section, home or away team, kick_off, stadium, club HP
    tmp_date = team['Jour de match'].iloc[i]
    tmp_date = str(yyyy) + '/' + tmp_date[:5]
    start_time = team['Temps KO'].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['section'].iloc[i]
    # team name
    team_name = team['Une façon'].iloc[i] if team['domicile'].iloc[i] == 'Nom de l'équipe' else team['domicile'].iloc[i]
    # kick off
    kickoff = str(team['Temps KO'].iloc[i])
    # stadium
    stadium = team['Stade'].iloc[i]
    # club HP
    club_url = club[club['Abréviation'] == team_name]['URL du site officiel']

    #Créez une chaîne au format iCalender à partir de données basées sur des nœuds.
    begin = 'BEGIN:VEVENT'
    dstart = 'DTSTART' + timezone + ':' + dtstart
    dend = 'DTEND' + timezone + ':' + dtend
    summary = 'SUMMARY' + language + ':' + sec + ' ' + team_name
    description1 = r'DESCRIPTION' + language + ':' + 'démarrer:' + kickoff + '\\n'
    description2 = r'Stade:' + stadium + '\\n'
    description3 = r'club:' + club_url.values[0] + '\\n\n' + info
    end = 'END:VEVENT' + '\n'
    
    #Liste des données section par section
    contents = [begin, dstart, dend, summary, description1, description2, description3, end]
    schedule_all.append(contents)

schedule_all.py


#Créer un fichier de calendrier
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)

Enfin, parcourez la liste section par section pour créer un fichier texte. (* Par souci d'explication, il est divisé en un processus en boucle pour créer des données de section et un processus en boucle pour créer un fichier texte.) 無題.png

Articles que j'ai utilisés comme référence

Recommended Posts

Importez le calendrier obtenu à partir de "Schedule-kun" dans Google Agenda
Accédez à Google Agenda depuis l'application iOS
Recevez le dernier rendez-vous de Google Agenda et notifiez-le sur LINE tous les matins
Importez "Sapporo City Household Garbage Collection Day Calendar" dans Google Agenda
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
Générez des rapports quotidiens à partir de Google Agenda
Obtenez des vacances avec l'API Google Agenda
Mettez le taux de change obtenu à partir de l'API REST Oanda en Python dans MongoDB
Je veux un bot Slack qui calcule et me dit le salaire d'un emploi à temps partiel à partir du calendrier de Google Agenda!
Pour le moment, importez-les dans jupyter
J'ai fait un calendrier qui met à jour automatiquement le calendrier de distribution de Vtuber (édition Google Calendar)