深入分析python数据挖掘 Json结构分析


Posted in Python onApril 21, 2018

深入分析python数据挖掘 Json结构分析

json是一种轻量级的数据交换格式,也可以说是一种配置文件的格式

深入分析python数据挖掘 Json结构分析

这种格式的文件是我们在数据处理经常会遇到的

python提供内置的模块json,只需要在使用前导入即可

深入分析python数据挖掘 Json结构分析 

你可以通过帮助函数查看json的帮助文档

深入分析python数据挖掘 Json结构分析

json常用的方法有load、loads、dump以及dumps,这个都属于python初级,我不做过多解释

json可以结合数据库一起使用,在这以后要处理大量数据时非常有用

下面我们正式来利用数据挖掘对json文件进行处理

现在很多网站都运用了Ajax,所以一般很多都是XHR文件

通过这里我想利用一个地图网站来演示

深入分析python数据挖掘 Json结构分析

我们通过浏览器的调试获取了相关url

https://ditu.amap.com/service/poiInfo?id=B001B0IZY1&query_type=IDQ

下面我们通过requests模块中的get方法,模拟浏览器发出的http请求,并返回的到的结果对象

代码如下

# coding=utf-8
__Author__ = "susmote"

import requests
url = "https://ditu.amap.com/service/poiInfo?id=B001B0IZY1&query_type=IDQ"

resp = requests.get(url)
print(resp.text[0:200])

在终端中运行结果如下

深入分析python数据挖掘 Json结构分析

数据已经获取到了,但是为了接下来能使用这些数据,我们需要利用json模块对这些数据进行分析

代码如下

import requests
import json

url = "https://ditu.amap.com/service/poiInfo?id=B001B0IZY1&query_type=IDQ"

resp = requests.get(url)

json_dict = json.loads(resp.text)

print(type(json_dict))

print(json_dict.keys())

简单讲一下上面的代码:

导入json模块,然后调用loads方法,将返回的文本作为方法的参数传入 

在终端中运行结果如下 

深入分析python数据挖掘 Json结构分析

 可以看出,转换的结果是与json字符串对应的字典,因为type(json_dict)返回的是<class 'dict'>

因为对象是一个字典,所以我们可以调用字典的方法,在这里我们调用的就是keys方法

结果返回三个键,即status、searcOpt、data

下面我们来查看data键里面的数据

import requests
import json

url = "https://ditu.amap.com/service/poiInfo?id=B001B0IZY1&query_type=IDQ"

resp = requests.get(url)

json_dict = json.loads(resp.text)

print(json_dict['data'])

下面在终端中运行这一段代码

深入分析python数据挖掘 Json结构分析

可以看到里面有很多我们需要的数据,如 

深入分析python数据挖掘 Json结构分析

不一一标出,通过跟网页显示的相比较,就能清楚哪些是有用的了

下面我们通过代码获取有用的信息,把它清晰的输出

# coding=utf-8
__Author__ = "susmote"

import requests
import json

url = "https://ditu.amap.com/service/poiInfo?id=B001B0IZY1&query_type=IDQ"

resp = requests.get(url)

json_dict = json.loads(resp.text)

data_dict = json_dict['data']

data_list = data_dict['poi_list']

dis_data = data_list[0]

print('城市: ', dis_data['cityname'])
print('名称: ', dis_data['name'])
print('电话: ', dis_data['tel'])
print('区号: ', dis_data['areacode'])
print('地址: ', dis_data['address'])
print('经度: ', dis_data['longitude'])
print('纬度: ', dis_data['latitude'])

 因为返回的是一个字典,通过对文件结构的研究,字典中嵌套着列表,列表中又嵌套着字典,通过层层解套,成功获取数据

我这里把步骤分开列出了,所以你会看的更加清楚

下面我们通过终端运行程序,获取我们想要的信息 

深入分析python数据挖掘 Json结构分析

是不是非常简单了,这个程序可以作为一个模版,获取其他地方的信息时只需要改一个url即可

例如以下几个范例

北京大学 

深入分析python数据挖掘 Json结构分析

 

或者是腾讯大厦

深入分析python数据挖掘 Json结构分析

数据挖掘是没有尽头的,希望大家多分析数据,找到你想要的数据

Python 相关文章推荐
python基础教程之自定义函数介绍
Aug 29 Python
python中readline判断文件读取结束的方法
Nov 08 Python
python实现堆栈与队列的方法
Jan 15 Python
Python实现新浪博客备份的方法
Apr 27 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
python提取xml里面的链接源码详解
Oct 15 Python
浅谈Python type的使用
Nov 19 Python
Python3运算符常见用法分析
Feb 14 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
Python编程中NotImplementedError的使用方法
Apr 21 #Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 #Python
python 限制函数调用次数的实例讲解
Apr 21 #Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 #Python
对Python中的@classmethod用法详解
Apr 21 #Python
python3+dlib实现人脸识别和情绪分析
Apr 21 #Python
Python通过属性手段实现只允许调用一次的示例讲解
Apr 21 #Python
You might like
PHP一些有意思的小区别
2006/12/06 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
DWZ table的原生分页浅谈
2013/03/01 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
js实现简易计算器功能
2019/10/18 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
python中的函数用法入门教程
2014/09/02 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
法律专业自我鉴定
2013/10/03 职场文书
电气技术员岗位职责
2013/11/19 职场文书
老同学聚会感言
2014/02/23 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
给学校的建议书范文
2014/05/15 职场文书
邓小平理论心得体会
2014/09/09 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
青年文明号汇报材料
2014/12/23 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书