Requests - Unable to Post date in ISO 8601 format in JSON Body

1.3k Views Asked by At

I want to build a script that run daily, to retrieve (yesterday date - today date) data.

A code to get today, yesterday date in ISO 8601, since the application only accept ISO 8601 format.

currDate = datetime.datetime.now()
prevDate = datetime.datetime.today() - datetime.timedelta(days=1)
currDateISO = currDate.isoformat()
prevDateISO = prevDate.isoformat()

Post above ISO date into Request body.

DATA = \
    {'verb': 'query', \
    'start_time': prevDateISO, \
    'end_time': currDateISO \
    }

res=requests.post(Host + url, headers=Header, data=json.dumps(DATA), verify=False)

Error (Python):

 'error': 'invalid parameter', 'message': 'Error in field start_time: Time format must be ISO8601'}

Taking out the start/end time, worked in my Python codes.

I was able to Post using below syntax:

{
  "verb":"query",
  "start_time":"2019-12-17T15:39:55.616Z",
  "end_time":"2019-12-18T15:39:55.616Z"
}
1

There are 1 best solutions below

0
malFUNKtion On
currDateISO = datetime.datetime.now().strftime("%Y%m%dT%H%M%S")
prevDateISO = datetime.datetime.now().strftime("%Y%m%dT%H%M%S")

ISO time (ISO 8601) in Python