lhx2008
V2EX  ›  问与答

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

  •  
  •   lhx2008 · Jun 12, 2018 · 1452 views
    This topic created in 2983 days ago, the information mentioned may be changed or developed.
    绕来绕去已经把我绕晕了,环境是 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 replies    2018-06-12 14:54:35 +08:00
    sujin190
        1
    sujin190  
       Jun 12, 2018   ❤️ 1
    4E2D 就是“中”的 unicode 的编码,只不过 json 一般来说是用\u4E2D 来表示了
    你可以 replace("%", "\\").replace("'", '"'),应该就可以解码出来了
    这么坑的。。
    hxsf
        2
    hxsf  
       Jun 12, 2018
    decodeURI 了解下
    lhx2008
        3
    lhx2008  
    OP
       Jun 12, 2018 via Android
    @sujin190 先用 quote,再替换,然后这种混合体怎么再次解密?
    lhx2008
        4
    lhx2008  
    OP
       Jun 12, 2018 via Android
    @lhx2008 替换之后用 json.loads 不知道会不会解,回去试一下
    sujin190
        5
    sujin190  
       Jun 12, 2018   ❤️ 1
    @lhx2008 replace 之后 json.loads 就可以加载了啊,replace 之后就是正常的 json 格式了,可以正常解码的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1031 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:52 · PVG 02:52 · LAX 11:52 · JFK 14:52
    ♥ Do have faith in what you're doing.