Python中的json解析

96
相关函数
2016.10.11 13:39* 字数 402

最近入手了一只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还不错
Web note ad 1