URI encoding in Python Requests package

user3435964 picture user3435964 · Oct 17, 2017 · Viewed 35.9k times · Source

I am using python requests package to get results from a API and the URL contains + sign in it. but when I use requests.get, the request is failing as the API is not able to understand + sign. how ever if I replace + sign with %2B (URI Encoding) the request is successful.

Is there way to encode these characters, so that I encode the URL while passing it to the requests package

Error: test [email protected] does not exist
API : https://example.com/[email protected]

Answer

MohitC picture MohitC · Oct 17, 2017

You can use requests.utils.quote (which is just a link to urllib.parse.quote) to convert your text to url encoded format.

>>> import requests
>>> requests.utils.quote('[email protected]')
'test%2Buser%40gmail.com'