【问题标题】:I want to decode string in python我想在python中解码字符串
【发布时间】:2014-04-25 08:30:58
【问题描述】:

使用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=

更新
具体问题是当我请求一个 url 并返回:

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

所以,我想解析这个真实的urls可以访问

【问题讨论】:

  • 你至少应该尝试一些东西,并在遇到特定问题时提出特定问题。这不是代码编写服务,尽管有时看起来是这样。
  • 至少在谷歌搜索会得到你写的答案..stackoverflow.com/questions/19527279/…

标签: python unicode decode


【解决方案1】:

在 Python 3 中,字符串是相同的。在 Python 2 中,如果字符串没有在脚本中硬编码(在这种情况下,您可以使用 Unicode 文字,正如 Roberto 建议的那样),您可以对其进行解码:

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='

【讨论】:

    【解决方案2】:

    只需使用:

    >>> 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='
    

    【讨论】:

    • 我会避免命名像内置 str-type 这样的变量
    【解决方案3】:

    试试这个:

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

    【讨论】:

    • 在问题的上下文中
    【解决方案4】:

    试试这个,

    >>> 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='
    >>> 
    

    【讨论】:

    • 不是我的反对意见,但为什么要立即将其编码为 ASCII?只需将其保留为 unicode。
    • @lvc 谢谢更新答案,请查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2010-10-29
    • 2011-10-18
    • 2020-01-15
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多