Python中的json解析

作者: 相关函数 | 来源:发表于2016-10-11 13:39 被阅读1581次

    最近入手了一只Raspberry Pi,于是起了学习Python的念头.由于笔者是初学者,并没有什么深刻的认识,或者说是并没有认识.于是在学习的过程中记给自己一种json格式的数据解析方法,用以与同是初学者共同学习......

    JSON格式的数据渐渐取代XML成为主流的数据结构,这里记一种利用urllib2和json模块解析JSON的方法.在python3中urllib2被改为urllib.request模块.

    urllib模块

    python 3.x中urllib库和urilib2库合并成了urllib库.其中urllib2.urlopen()变成了urllib.request.urlopen()而urllib2.Request()变成了urllib.request.Request() .

    json模块

    使用json模块解析json数据只需要使用期loads()方法即可.将网络请求下来的数据加载成为json结构的数据.

    这里请求一个有道翻译的url http://fanyi.youdao.com/openapi.do?keyfrom=boomshakalaka&key=869110526&type=data&doctype=json&version=1.1&q=good .

    请求成功之后返回的数据为:

    {
     "basic": {
      "explains": [
       "n. 好处;善行;慷慨的行为",
       "adj. 好的;优良的;愉快的;虔诚的",
       "adv. 好",
       "n. (Good)人名;(英)古德;(瑞典)戈德"
      ],
      "phonetic": "gʊd",
      "uk-phonetic": "gʊd",
      "us-phonetic": "ɡʊd"
     },
     "errorCode": 0,
     "query": "good",
     "translation": [
      "好"
     ],
     "web": [
      {
       "key": "Good",
       "value": [
        "好",
        "善",
        "商品"
       ]
      },
      {
       "key": "public good",
       "value": [
        "公共物品",
        "公益事业",
        "公共财"
       ]
      },
      {
       "key": "Good Doctor",
       "value": [
        "굿 닥터",
        "Good Doctor (TV series)",
        "好医生"
       ]
      }
     ]
    }
    

    在Python3之前使用urllib2进行json结构数据的解析

    import urllib2
    import json
    response = urllib2.urlopen('http://fanyi.youdao.com/openapi.do?keyfrom=boomshakalaka&key=869110526&type=data&doctype=json&version=1.1&q=good')
    data = json.loads(response.read())
    print data
    

    Python3使用urllib.request进行json结构数据的解析

    这里要注意一下 直接用urllib.request模块的urlopen()获取页面,page的数据格式为bytes类型,需要decode()解码转换成str类型.

    import urllib.request
    import json
    response = urllib.request.urlopen('http://fanyi.youdao.com/openapi.do?keyfrom=boomshakalaka&key=869110526&type=data&doctype=json&version=1.1&q=good')
    response = response.read().decode('utf-8')
    data = json.loads(response)
    print(data)
    

    END

    关于urllib2模块的相关问题参考python urllib2详解及实例

    关于urllib模块的相关问题参考Python3学习笔记(urllib模块的使用).

    关于json模块的相关问题参考json模块使用总结——Python

    相关文章

      网友评论

        本文标题:Python中的json解析

        本文链接:https://www.haomeiwen.com/subject/qrxbyttx.html