Python 解码 URL
我有一个网址,格式是这样的 - http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show
。我该怎么把它变成正常的网址呢?我试过用 urllib.unquote
,但是效果不太好。
我可以用正则表达式或者一些简单的字符串替换方法来处理。但我觉得应该有更好的办法来解决这个问题...
3 个回答
1
这太幼稚了——当你自己可以处理URL时,为什么还要去找什么库函数呢?因为除了把“/”替换成“\/”之外,没有其他明显的规则,所以你可以简单地把它换回来:
def unescape_this(url):
return url.replace(r"\\/", "/")
11
urllib.unquote
是用来把网址中的 %xx
这种编码替换成它们代表的字符的。对于这个问题,它可能没什么用。
你提到的“简单字符串替换”可能是最好的解决办法。
5
你有没有试过使用 json.loads
这个来自 json 模块的功能呢?
>>> json.loads('"http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show"')
'http://en.wikipedia.org/wiki/The_Truman_Show'
我这里展示的输入其实和你得到的并不完全一样。我把它用双引号包起来了,这样才能算是有效的 json 格式。
当你第一次从 json 中获取数据时,你是怎么解码的呢?问题可能就出在这里。