Czy istnieje sposób, aby zawartość zdekodować ciąg w Pythonie 3URL Decode z Python 3
wziąć coś takiego
id%253D184ff84d27c3613d%26quality%3Dmedium
i dekodować go dwukrotnie, aby uzyskać
id=184ff84d27c3613d&quality=medium
Czy istnieje sposób, aby zawartość zdekodować ciąg w Pythonie 3URL Decode z Python 3
wziąć coś takiego
id%253D184ff84d27c3613d%26quality%3Dmedium
i dekodować go dwukrotnie, aby uzyskać
id=184ff84d27c3613d&quality=medium
Wystarczy użyj urllib.parse.unquote()
:
>>> 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
Spróbuj tego:
from urllib.parse import unquote
s = 'id%253D184ff84d27c3613d%26quality%3Dmedium'
unquote(unquote(s))
Powróci:
> 'id=184ff84d27c3613d&quality=medium'
Python3 zorganizował' urllib' i 'urllib2' w pojedynczy 'urllib' z różnymi podmodułami. To działałoby dla Python2. – Blender
Dzięki za wskazanie, jaki byłby poprawny sposób w Pythonie3? 'from urllib import parse.unquote'? –
'from urllib.parse import unquote'. Zobacz moją odpowiedź. – Blender
uzyskać 'AttributeError: 'moduł' obiekt ma atrybut„parse'' zamiast muszę użyć 'urllib.unquote()' bezpośrednio . – Benjamin
@Benjamin: Używasz Python2. To jest dla Python3. – Blender
Nie wiem, dlaczego trzeba uruchomić dwa razy, czy możesz wyjaśnić @Blender? –