深入分析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 json模块使用实例
Apr 11 Python
Python脚本判断 Linux 是否运行在虚拟机上
Apr 25 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
Python使用wxPython实现计算器
Jan 30 Python
python主线程捕获子线程的方法
Jun 17 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python 获取谷歌浏览器保存的密码
Jan 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 无法载入mysql扩展
2010/03/12 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
iOS10推送通知开发教程
2016/09/19 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
python实现进程间通信简单实例
2014/07/23 Python
Python判断字符串与大小写转换
2015/06/08 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
活动策划邀请函
2014/02/06 职场文书
司法局火灾防控方案
2014/06/05 职场文书
学生会招新宣传语
2015/07/13 职场文书
新员工入职感想
2015/08/07 职场文书