跳过字符串url python

时间:2015-09-25 09:12:12

标签: python python-requests

我正在使用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

引发错误。

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

Python中的原始字符串文字

string = r"L20-ORG/BLUE-109(38)"

您可以找到更多信息herehere

答案 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)'