0
我读的API文档和他们说的格式应该是这样的:URL编码部分
https://app.datafireball.com/SearchService/search/xref?parts=[{"partNumber":"mypartnumber", "manufacturer":"my factory"}]&fmt=xml
当我在Chrome开发者控制台监视器。所请求的URL看起来像:
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))
,任何人都可以帮助我了解为什么,什么是编码的正确方法网址。