我有一个这种形式的网址 - http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show
。我怎样才能使它成为正常的网址。我尝试使用urllib.unquote
但没有取得多大成功。
我总是可以使用正则表达式或一些简单的字符串替换东西。但我相信有更好的方法可以解决这个问题......
答案 0 :(得分:11)
urllib.unquote
用于将URL中的%xx
转义码替换为它们所代表的字符。它对此没有用。
您的“简单字符串替换内容”可能是最佳解决方案。
答案 1 :(得分:5)
您是否尝试过使用json模块中的json.loads
?
>>> json.loads('"http:\\/\\/en.wikipedia.org\\/wiki\\/The_Truman_Show"')
'http://en.wikipedia.org/wiki/The_Truman_Show'
我正在展示的输入并不完全是你所拥有的。我用双引号把它包起来使它成为有效的json。
当你第一次从json那里得到它时,你是如何解码它的?这可能就是问题所在。
答案 2 :(得分:1)
太幼稚了 - 当你可以自己转换URL时,寻找一些库函数。 由于没有其他可见规则,但“/”替换为“\ /”,您只需将其替换回来:
def unescape_this(url):
return url.replace(r"\\/", "/")