我有文字
-DrandomProperty=randomVal
我需要将它转换为普通的url,就像字符串一样。
s = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl\u003dyes\u0026id\u003d2f4d1d2005872ce2\u0026itag\u003d22\u0026source\u003dwebdrive\u0026app\u003dtexmex\u0026"
我试过s.decode(' utf-8')不起作用。 任何帮助非常感谢。 谢谢
答案 0 :(得分:0)
在python 3中,它们都是相同:
s = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl\u003dyes\u0026id\u003d2f4d1d2005872ce2\u0026itag\u003d22\u0026source\u003dwebdrive\u0026app\u003dtexmex\u0026"
string_I_want_instead = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl=yes&id=2f4d1d2005872ce2&itag=22&source=webdrive&app=texmex&"
assert s == string_I_want_instead
如果您使用的是python 2,则需要将它们作为unicode字符串才能使字符正常工作,但仍然可以添加u"..."
前缀,它们仍然是相同的。
s = u"https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl\u003dyes\u0026id\u003d2f4d1d2005872ce2\u0026itag\u003d22\u0026source\u003dwebdrive\u0026app\u003dtexmex\u0026"
string_I_want_instead = u"https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl=yes&id=2f4d1d2005872ce2&itag=22&source=webdrive&app=texmex&"
assert s == string_I_want_instead
答案 1 :(得分:0)
Python 3
url = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl\u003dyes\u0026id\u003d2f4d1d2005872ce2\u0026itag\u003d22\u0026source\u003dwebdrive\u0026app\u003dtexmex\u0026"
final_url = url.encode('utf-8').decode()
if url == final_url:
print("Both Are Equal")
输出:
Both Are Equal
@ TadhgMcDonald-Jensen指出它们是相同的,你可以使用你的初始字符串,输出将自动编码为utf-8。
答案 2 :(得分:0)
试试这个:
s1= urllib.unquote(s).encode('latin1').decode('unicode_escape')
答案 3 :(得分:0)
在Python 3中,这些字符串是相同的,因此您必须使用Python 2.您可以使用unicode_escape
编解码器将s
转换为Unicode字符串,然后将其编码回字节字符串使用适当的编解码器。 ascii
在这种情况下运行正常:
#!python2
s = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl\u003dyes\u0026id\u003d2f4d1d2005872ce2\u0026itag\u003d22\u0026source\u003dwebdrive\u0026app\u003dtexmex\u0026"
t = "https://r3---sn-tt17dnel.c.docs.google.com/videoplayback?requiressl=yes&id=2f4d1d2005872ce2&itag=22&source=webdrive&app=texmex&"
print s == t
print s.decode('unicode-escape').encode('ascii') == t
输出:
False
True