我是否正确地将日期对象发送到请求主体?python

我是否正确地将日期对象发送到请求主体?python,python,post,request,urllib2,urllib,Python,Post,Request,Urllib2,Urllib,我正在通过python urllib和urllib2库发送POST请求。 我可以发送请求,但它忽略了日期(值) 在文档中,它说我需要在请求主体上传递date对象。下面是我正在使用的代码 url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105' values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}} data = urllib.urlencode(values)

我正在通过python urllib和urllib2库发送POST请求。 我可以发送请求,但它忽略了日期
(值)

在文档中,它说我需要在请求主体上传递date对象。下面是我正在使用的代码

url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
data = urllib.urlencode(values)

req = urllib2.Request(url, data)

req.add_header('Content-Type', 'application/json; charset=utf-8')
req.add_header('Content-Length', 0)

response = urllib2.urlopen(req)
从API文档中,这就是我对日期格式的了解

“请求正文必须包含YYYY-MM-DD格式的日期范围,即

该请求的完整文档可在此处找到

您应该发送JSON格式的文档,而不是URL编码的数据:

url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')

response = urllib2.urlopen(req, json.dumps(values))

您必须告诉我们文档希望日期范围的格式。刚刚更新了我的原始帖子。如果您熟悉Chrome的高级Rest客户端,我输入“{”dateRange:{”from:“2015-09-22”,“to:“2015-09-22”}“进入有效载荷部分,它工作。不知道如何将其转换到我的python脚本中,谢谢!这起作用了。我还注意到'req.add_header('Content-Length',0')干扰了日期参数的传递。。
url = 'https://api.kenshoo.com/v2/reports/5233/runs/?ks=105'
values = {'dateRange': {'from':'2015-09-22', 'to':'2015-09-22'}}
req = urllib2.Request(url)
req.add_header('Content-Type', 'application/json')

response = urllib2.urlopen(req, json.dumps(values))