运行多个日期Python

时间:2018-05-25 02:34:04

标签: python csv datetime

我想回到2018年3月29日,每天都要经历直到今天。还要将每一天单独保存到.csv并更改名称BOOKS_thedate.csv。 我的意思是以另一种方式应用日期时间,任何理解这一点的帮助都会非常感激。

import csv
import requests
import datetime
from pprint import pprint

outfile = open("BOOKS.csv","w",newline='')
writer = csv.writer(outfile)
writer.writerow(["book_ids","status","away_team_id","away_rot","ml_away","spread_away","spread_away_line","home_team_id",
                 "home_rot","ml_home","spread_home","spread_home_line","over","under","total","type_odds","insert","time",
                 "one_tm_id","one_tm","one_team","two_tm_id","two_tm","two_team"])

req2 = requests.get('https://api-prod.sprtactn.co/web/v1/scoreboard/mlb?bookIds=21,1,55&date=' + datetime.datetime.now().strftime('%Y%m%d') + '')
odd = req2.json()['games']

for info in odd:
    time = info['start_time']
    status = info['status']
    away_rot = info['away_rotation_number']
    home_rot = info['home_rotation_number']
    away_team_id = info['away_team_id']
    home_team_id = info['home_team_id']
    teams = info['teams']
    vegas = info['odds']
    one_team = teams[0]['full_name']
    one_tm = teams[0]['abbr']
    one_tm_id = teams[0]['id']
    two_team = teams[1]['full_name']
    two_tm = teams[1]['abbr']
    two_tm_id = teams[1]['id']
    for odds in vegas:
        ml_away = odds['ml_away']
        ml_home = odds['ml_home']
        type_odds = odds['type']
        insert = odds['inserted']
        book_ids = odds['book_id']
        spread_away = odds['spread_away']
        spread_home = odds['spread_home']
        spread_away_line = odds['spread_away_line']
        spread_home_line = odds['spread_home_line']
        over = odds['over']
        under = odds['under']
        total = odds['total']


        print(book_ids, status, away_team_id, away_rot, ml_away, spread_away, spread_away_line, 
              home_team_id, home_rot, ml_home, spread_home, spread_home_line,
              over, under, total, type_odds, insert, time, one_tm_id, one_tm, one_team, two_tm_id, two_tm, two_team)

        writer.writerow([book_ids, status, away_team_id, away_rot, ml_away, spread_away, spread_away_line, 
              home_team_id, home_rot, ml_home, spread_home, spread_home_line,
              over, under, total, type_odds, insert, time, one_tm_id, one_tm, one_team, two_tm_id, two_tm, two_team])

1 个答案:

答案 0 :(得分:1)

一种简单的方法是使用Pendulum库(https://pendulum.eustace.io/docs/)。

根据这些计算startend次,然后计算period次。执行for循环,为period中的每个时间间隔提供一个日期时间项,在这种情况下为每天。

在循环中,您可以设置日期时间的格式,以提供在URL中使用的字符串以及命名csv,如图所示。

>>> import pendulum
>>> start = pendulum.datetime(2018, 3, 29)
>>> end = pendulum.today()
>>> period = pendulum.period(start, end)
>>> for dt in period.range('days'):
...     dt.format('%Y%m%d')
...     break
... 
'20180329'