首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭Python请求中的URL编码

关闭Python请求中的URL编码
EN

Stack Overflow用户
提问于 2013-07-30 06:53:50
回答 1查看 1.9K关注 0票数 2

我正在尝试将JSON直接通过URL传递给communicate with the Ecobe API。无论我如何尝试格式化数据,它都会在URL中转义。用于允许您在调用中传递配置参数的请求,并具有关闭编码的选项,但它已被删除(因此answer in this thread不再工作)。我在文档中看到的唯一引用是requests.defaults中的内容,但我不知道如何设置它。正因为如此,我的URL包含了所有JSON格式的URL转义,而不是API想要的样子:

代码语言:javascript
复制
GET https://api.ecobee.com/1/runtimeReport?format=json&body={"startDate": "2010-01-01","endDate": "2010-01-02","columns": "zoneHVACmode,zoneCalendarEvent","selection":{"selectionType":"thermostats","selectionMatch": 123456789012"}}

此外,我已经尝试了足够多的猎枪方法(包括one in this thread),我不确定如果它确实有效,什么是最好/最有效的方法,所以这里是我当前代码的(缩写版本),以防有更好的选择:

代码语言:javascript
复制
self.api_url = 'https://api.ecobee.com/%s?format=json&%s'
data = {
    'startDate': start_date.strftime('%Y-%m-%d'),
    'endDate': end_date.strftime('%Y-%m-%d'),
    'columns': 'auxHeat1,compCool1,outdoorHumidity,zoneAveTemp,zoneCoolTemp,zoneHeatTemp',
    'includeSensors': 'true',
    'selection': self.selection_info
}
endpoint = 'runtimeReport'
params_json = simplejson.dumps(params)
response = requests.get(self.api_url % (endpoint, params_json), headers=self._get_headers())
EN

回答 1

Stack Overflow用户

发布于 2013-07-31 09:20:19

看起来不能再继续下去了。每个URL都通过requote_uri in utils.py传递。除非我遗漏了什么,否则这个API需要在GET参数中包含空格的JSON不是一个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17935559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档