"Sayth Renshaw" wrote in message news:328f42bb-ba23-4199-9f3a-9ec1829bc...@googlegroups.com...

Hi

I am struggling to figure out how I can create a generator to provide values to my url. My url needs to insert the year month and day in the url not as params to the url.

import json
import requests
import datetime

# using this I can create a list of dates for the first 210 days of this year.

base = datetime.datetime(2017,1,1)

def datesRange(max, min):
date_list = (base - datetime.timedelta(days=x) for x in range(max,min))
    DAY = date_list.day
    MONTH = date_list.month
    YEAR = date_list.year
    yield DAY, MONTH, YEAR

dateValues = datesRange(-210,0)

Are you sure that this works?

The easiest way to test it is -

list(datesRange(-210, 0))

If I try this I get AttributeError: 'generator object has no attribute 'day'

I would write it like this -
 def datesRange(max, min):
    for day in range(max, min):
       date = base - datetime.timedelta(days=day)
       yield date.day, date.month, date.year

Actually, I have just read Peter's response, and his version is much better, but this one is closer to your original code.


def create_url(day, month, year):

https://api.tatts.com/sales/vmax/web/data/racing/{0}/{1}/{2}/sr/full".format(YEAR,MONTH,DAY)
    return url

Then I want to insert them in this url one at a time from the generator


To do this, you need some kind of loop to iterate over your generator -

   for day, month, year in datesRange(-210, 0):
         # do something

Does this help?

Frank Millman



--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to