Pythonで曜日を出力する方法 – R.P.BLOG

Pythonで曜日を出力する方法

2021/05/27

2021/05/27

今回はPythonで指定した日時の曜日を出力する方法を紹介します。

<JSON/サンプルデータ>

{
    "Data":[
        {
            "Id": "0",
            "Date": "1997-01-02",
        },
        {
            "Id": "1",
            "Date": "1997-01-03",
        },
        {
            "Id": "2",
            "Date": "1997-01-06",
        },
        {
            "Id": "3",
            "Date": "1997-01-07",
        },
        {
            "Id": "4",
            "Date": "1997-01-08",

        },
        {
            "Id": "5",
            "Date": "1997-01-09",
        }
    ]
}

<Python>

import json
import datetime as dt
open_json = open('data.json', 'r')
load_json = json.load(open_json)
dir_data = load_json['Data']

data_length = len(dir_data)
weekday_list = []
for json_key in range(data_length):
    date_Year = dir_data[json_key]['Date'][0:4]
    date_Month = dir_data[json_key]['Date'][5:7]
    date_Day = dir_data[json_key]['Date'][8:10]
    date_list = dt.date(int(date_Year), int(date_Month), int(date_Day))
    weekday = date_list.strftime('%a')
    weekday_list.append(weekday)
    print(date_list)
    print(weekday_list[json_key])

<解説>

import json
import datetime as dt

一行目でJSONのエンコードとデコードが実行できるモジュール’json’を取り込み。
二行目で日付や時刻に対して様々なことが実行できるモジュール’datetime’を取り込み、以後’dt’として呼び出せるように。

open_json = open('data.json', 'r')
load_json = json.load(open_json)
dir_data = load_json['Data']

一行目で’data.json’を指定し、’r’でJSONファイルを読み込み用に指定。
二行目で一行目で指定したJSONファイルのkey’Data’の情報(value)を読み込み。
いちいち’load_json[‘Data]’と記述するのが面倒なので、三行目で’load_json[‘Data]’を変数’dir_data’に格納。

data_length = len(dir_data)
weekday_list = []

一行目で’Data’のvalueの数を取得。
二行目で空の配列’weekday_list’を作成。

for json_key in range(data_length):
    date_Year = dir_data[json_key]['Date'][0:4]
    date_Month = dir_data[json_key]['Date'][5:7]
    date_Day = dir_data[json_key]['Date'][8:10]

このブロックは全てfor文。
一行目で変数’json_key’に0から’data_lengthまでの数字が全て代入されるまで以下のコードを繰り返し実行するように指定。
二行目で’dir_data’の’json_key’番目の[‘Date’]のvalueの上から0~4桁目を切り取り変数’date_Year’に格納。。ex)1997-01-02 => 1997
三行目も二行目と同様に’json_key’番目の[‘Date’]のvalueの上から5~7桁目を切り取り変数’date_Month’に格納。
四行目も’json_key’番目の[‘Date’]のvalueの上から8~10桁目を切り取り変数’date_Day’に格納。

    date_list = dt.date(int(date_Year), int(date_Month), int(date_Day))
    date_Weekday = date_list.strftime('%a')
    weekday_list.append(date_Weekday)

for文の続き。
一行目で’datetime’の’date’オブジェクトを使い’data_Year’,’date_Month’,’date_Day’の値をPythonが日付と認識できるように変換し変数’date_list’に格納。
二行目で変数’date_list’に格納された日付のデータを’datetime’の’strftime’を使い曜日を割り出し変数’date_Weekday’。.strftime()で出力するデータ形式を変更することが出来る。
今回の場合は’%a’で曜日名を短縮形で出力させている。
三行目で変数’date_Weekday’に格納された値を配列’weekday_list’に格納。

https://docs.python.org/ja/3/library/datetime.html#strftime-strptime-behavior

    print(date_list)
    print(weekday_list[json_key])

for文の続き。
一行目と二行目で実行結果を表示。

#実行結果    
1997-01-02
Thu
1997-01-03
Fri
1997-01-06
Mon
1997-01-07
Tue
1997-01-08
Wed
1997-01-09
Thu

以上です。ありがとうございました。

ブログのデザイン更新頑張ります…

この記事をシェアする

コメントは受け付けていません。

自己紹介

髙橋

WEBデザイン学科

HTMLとCSS、PHPを勉強中

カテゴリー

アーカイブ

© 2020 Takahashi