募集終了

pythonで集計データを取得しcsv出力する際、出力期間と集計期間が異なる場合

Python

投稿日:2023年03月28日 20:26

メンターの報酬に合わせる

pythonであるシステムから、集計データを取得して、csv出力する際
出力期間と集計期間が異なる場合の実装の仕方で困っています。
集計データの期間は、該当月の初日から末日まで。
実行するのは、翌月の第二営業日まで。
(例:3月分のデータ出力(3月1日〜3月31日までの集計期間)
→3月2日〜4月3日(第一営業日)まで出力する)

集計期間、上記の場合3月1日〜3月31日を他ファイルに渡してSQLを発行します。そのため、
以下のような実装で考えていますが
かなり長いコードになり、且つ、日付などべたがきのコードになってしまいます。

str_today = today.strftime('%Y/%m/%d')

if '2023/03/02' <= str_today <= '2023/04/03':
term = {"year":'2023', "month":'03', "interview_start_time":'2023-03-01', "interview_end_time":'2023-03-31'}
elif '2023/04/04' <= str_today <= '2023/05/01':
term = {"year":'2023', "month":'04', "interview_start_time":'2023-04-01', "interview_end_time":'2023-04-30'}
elif '2023/05/02' <= str_today <= '2023/06/01':
term = {"year":'2023', "month":'05', "interview_start_time":'2023-05-01', "interview_end_time":'2023-05-31'}

そのため、出力期間を配列に入れて

dict ={
'03': {'start_date':'2023/03/02','end_date':'2023/04/03'},
'04': {'start_date':'2023/04/04','end_date':'2023/05/01'},
'05': {'start_date':'2023/05/02','end_date':'2023/06/01'},
'06': {'start_date':'2023/06/02','end_date':'2023/07/03'},
'07': {'start_date':'2023/07/04','end_date':'2023/08/01'},
'08': {'start_date':'2023/08/02','end_date':'2023/09/01'},
'09': {'start_date':'2023/09/04','end_date':'2023/10/02'},
'10': {'start_date':'2023/10/03','end_date':'2023/11/01'},
'11': {'start_date':'2023/11/02', 'end_date':'2023/12/01'},
'12':{'start_date':'2023/12/04', 'end_date':'2024/01/04'}
}
キーをその日(str_today)の「月」を軸にしようと思ったのですが、
たとえば4月3日の場合、月が4月になるが、出力したいのは3月なので、
str_todayをキーにすることができない。。となり、べたがきする方法しかないのか?と思っています。

何か違う書き方はありますでしょうか。
既読0

コメント


メッセージはまだありません

募集終了

回答可能なメンター

まだいません。