V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lhx2008
V2EX  ›  问与答

Python 里面怎么对这个东西解码?

  •  
  •   lhx2008 · 2018-06-12 13:43:51 +08:00 · 983 次点击
    这是一个创建于 2137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    绕来绕去已经把我绕晕了,环境是 python3

    爬虫抓到一个 json (没错,就是这么鬼畜的 json ),已经变成 str 格式

    {'htype': '%2E%u4E2D%u56FD', 'hnew': '%33%30%2E%30%30'}

    然后我用

    urllib.parse.unquote() 解

    得到

    {'htype': '.%u4E2D%u56FD', 'hnew': '30.00'}


    然后就不知道要怎么弄了,搜索了一会也没结果

    正确结果应该是
    {'htype': '.中国', 'hnew': '30.00'}
    5 条回复    2018-06-12 14:54:35 +08:00
    sujin190
        1
    sujin190  
       2018-06-12 14:13:44 +08:00   ❤️ 1
    4E2D 就是“中”的 unicode 的编码,只不过 json 一般来说是用\u4E2D 来表示了
    你可以 replace("%", "\\").replace("'", '"'),应该就可以解码出来了
    这么坑的。。
    hxsf
        2
    hxsf  
       2018-06-12 14:16:59 +08:00
    decodeURI 了解下
    lhx2008
        3
    lhx2008  
    OP
       2018-06-12 14:17:19 +08:00 via Android
    @sujin190 先用 quote,再替换,然后这种混合体怎么再次解密?
    lhx2008
        4
    lhx2008  
    OP
       2018-06-12 14:19:31 +08:00 via Android
    @lhx2008 替换之后用 json.loads 不知道会不会解,回去试一下
    sujin190
        5
    sujin190  
       2018-06-12 14:54:35 +08:00   ❤️ 1
    @lhx2008 replace 之后 json.loads 就可以加载了啊,replace 之后就是正常的 json 格式了,可以正常解码的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3183 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:19 · PVG 21:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.