最近入手了一只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
网友评论