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