我正在使用python请求连接到网站。我传递一些字符串来获取有关它们的数据。
问题是某些字符串包含斜杠/
,所以当它们在url中传递时,我得到了ValueError
。
这是我的网址:
https://api.flipkart.net/sellers/skus/%s/listings % string
当传递string时(不包含斜杠的字符串),我得到:
https://api.flipkart.net/sellers/skus/A35-Charry-228_39/listings
返回有效的回复。但是当我传递包含斜杠的字符串时:
string = "L20-ORG/BLUE-109(38)"
我的网址是:
https://api.flipkart.net/sellers/skus/L20-ORG/BLUE-109(38)/listings
引发错误。
如何解决这个问题?
答案 0 :(得分:2)
答案 1 :(得分:1)
urllib.quote_plus
是你的朋友。由于urllib
是标准库中的模块,因此您只需使用import urllib
导入它。
如果你想要保守,只需使用默认值:
string = urllib.quote_plus("L20-ORG/BLUE-109(38)")
给出'L20-ORG%2FBLUE-109%2838%29'
如果您知道某些字符对您的用例无效(比如括号):
string = urllib.quote_plus("L20-ORG/BLUE-109(38)", '()')
给出'L20-ORG%2FBLUE-109(38)'