Vladiki
Vladiki

Reputation: 893

Decode URL that has been encoded twice (containing %25xx) with Python 3

Is there a way to URL decode a string in Python 3

to take something like this

id%253D184ff84d27c3613d%26quality%3Dmedium

and decode it twice to get

id=184ff84d27c3613d&quality=medium

Upvotes: 88

Views: 91009

Answers (2)

Óscar López
Óscar López

Reputation: 235984

Try this:

from urllib.parse import unquote
s = 'id%253D184ff84d27c3613d%26quality%3Dmedium'
unquote(unquote(s))

It will return:

'id=184ff84d27c3613d&quality=medium'

Upvotes: 19

Blender
Blender

Reputation: 298046

Just use urllib.parse.unquote() twice:

>>> import urllib.parse
>>> urllib.parse.unquote('id%253D184ff84d27c3613d%26quality%3Dmedium')
'id%3D184ff84d27c3613d&quality=medium'
>>> urllib.parse.unquote('id%3D184ff84d27c3613d&quality=medium')
'id=184ff84d27c3613d&quality=medium'

Upvotes: 129

Related Questions