URL部分编码

时间:2015-05-29 22:35:16

标签: python url

我正在阅读API文档,他们说格式应该是:

https://app.datafireball.com/SearchService/search/xref?parts=[{"partNumber":"mypartnumber", "manufacturer":"my factory"}]&fmt=xml

当我在chrome开发者控制台中监控时。请求的网址如下所示:

https://app.datafireball.com/SearchService/search/xref?parts=[{%22partNumber%22:%22bav99%22,%22manufacturer%22:%22my%20factory%22}]&fmt=xml

我可以看到有几个字符已被编码,例如:

" => %22
space => %20

我知道我可以使用urllib.quote来实现这一点,但是,我真的很难理解为什么他们只编码双引号和空格而不是{大括号和其他字符。

最后,我必须以这样的方式对我的Python代码进行硬编码:

urltemplate = "https://app.datafireball.com/SearchService/search/xref?parts=[{{%22partNumber%22:%22{0}%22,%22manufacturer%22:%22{1}%22}}]&fmt=xml"
url = urltemplate.format(urllib.quote(mpn), urllib.quote(mfr))  
看起来半硬编码的

,任何人都可以帮助我理解为什么以及编码网址的正确方法是什么。

1 个答案:

答案 0 :(得分:0)

我认为您不需要自己进行编码工作,将您的网址编码为不同格式的浏览器也会在调用服务器API时解码您的网址。