继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python中的json解析

缥缈止盈
关注TA
已关注
手记 287
粉丝 34
获赞 152

最近入手了一只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 urllib2import 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.requestimport 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


作者:相关函数
链接:https://www.jianshu.com/p/5b9bcc536543


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP