我想在Python中解码字符串

0 投票
4 回答
1612 浏览
提问于 2025-04-18 04:11

使用Python,我该如何将一个像这样的字符串

'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d'

转换成

id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw=

更新
具体的问题是,当我请求一个网址时,返回的是:

 {"code":0,"urls":["http://vr.tudou.com/v2proxy/v?id\u003d217267950\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d113.68.97.224\u0026pw\u003d"]}

所以,我想解析出这些真实的网址,以便可以访问。

相关问题:

4 个回答

0

试试这个,

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d').encode('ascii','ignore')
'id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw='
>>> 

更新

>>> unicode_str=u'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d'
>>> normal_str = unicode_str.encode('utf-8')
>>> normal_str
'id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw='
>>> unicode_str = normal_str.decode('utf-8')
>>> unicode_str
u'id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw='
>>> 
0

试试这个:

u'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d'
1

只需要使用:

>>> s = u'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d'
>>> s
u'id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw='
2

在Python 3中,字符串是一样的。而在Python 2中,如果字符串不是直接写在你的代码里(如果是这样的话,你可以像Roberto建议的那样使用Unicode字面量),你可以对它进行解码:

In [1]: s = 'id\u003d215903184\u0026index\u003d0\u0026st\u003d52\u0026sid\u003d95000\u0026ip\u003d14.145.245.85\u0026pw\u003d'

In [2]: s.decode('unicode-escape')
Out[2]: u'id=215903184&index=0&st=52&sid=95000&ip=14.145.245.85&pw='

撰写回答