Generator - Provide parameters to url - requests
Frank Millman
frank at chagford.com
Wed Jul 5 03:50:23 EDT 2017
"Sayth Renshaw" wrote in message
news:328f42bb-ba23-4199-9f3a-9ec1829bc448 at 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
More information about the Python-list
mailing list