Python 解码 URL

4 投票
3 回答
8662 浏览
提问于 2025-04-16 07:48

我有一个网址,格式是这样的 - 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 中获取数据时,你是怎么解码的呢?问题可能就出在这里。

撰写回答