12.2 解析JSON数据
我们已经学习过如何读取JSON文件,接下来就把12.1节中保存的JSON数据读取并解析出来,代码如下:
import json
with open('test.json',encoding='utf-8')as f:
data=json.load(f)
for d in data:
print(d)
这样我们就得到了爬取的所有数据,但在进行数据统计分析时,可能只需要用到一部分数据,所以还需要进一步筛选和清理数据。现在的数据总共有三个字段,分别是"name”“date”“kind”。
接下来我们可以统计每个类别的数据分别有多少条:
import json
#初始化一个字典
data=dict()
with open('test.json',encoding='utf-8')as f:
items=json.load(f)
for item in items:
#得到每个数据的类别
kind=item['kind']
#统计每个类别的数据的数量,存入字典中
if kind not in data:
data[kind]=0
data[kind]+=1
print(data)
执行后就可以看到每个类别的数据 条数输出如下:
{'行业解决方案':10,'教育解决方案':9,'成功案列':5}
如果需要以其他方式呈现数据,比如以ECharts图表的方式在网页展示数据,还需要把数据的格式修改成ECharts所需要的格式,比如如果饼图需要的是[{"value":1,"name":"名称"}]格式,就需要转换数据,如下。
import json
data=dict()
whih open('test.json',encoding='utf-8')as f:
items=json.load(f)
for item in items:
kind=item['kind']
if kind not in data:
data[kind]=0
date[kind]+=1
print(data)
output=[]
for i in dara.keys():
o=dic()
o['name']=i
o['value']=data[i]
output.append(0)
with open("data.json","w",encoding='utf-8')as f:
json.dump(output,f,ensure_ascii=False,indent=4)
以上就是常见的数据分析,筛选的过程,然后将生成的data.json文件保存在目录中,接下来我们会用到它,把筛选后的数据用网页呈现出来。
12.3 运用网页呈现数据
我们在12.2节中已经准备了ECharts饼图格式的数据,接下来用网页加载data.json的内容,并显示出来。
<!DOCTYPE html>
<meta charset='utf-8'>
<title>ECharts 饼图</title>
<script src="./js/jquery.min.js"></script>
<!--引入echarts.js-->
<script src="./js/echarts.min.js"></script>
</head>
<!--为ECharts准备一个具备大小(宽高)的DOM-->
<div id="main" style="width:600px;height:400px;"></div>
<script type="text/javascript">
//基于准备好的DOM,初始化ECharts实例
var myChart=echarts.init(document.getElementById('main'));
$.get('data.json',function(data){
myChart.setOption({
series:[
name:'访问来源',
type:'pie',//设置图表类型为饼图
radius:'55%',//饼图的半径
data:data
},'json')