深入分析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全局变量用法实例分析
Jul 19 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Python unittest模块用法实例分析
May 25 Python
Python列表解析配合if else的方法
Jun 23 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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/10/09 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
php中的ini配置原理详解
2014/10/14 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
JS跨域总结
2012/08/30 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
python访问sqlserver示例
2014/02/10 Python
python的exec、eval使用分析
2017/12/11 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
使用Python来开发微信功能
2018/06/13 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
单位创先争优活动方案
2014/01/26 职场文书
二年级小学生评语
2014/04/21 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
审计班子对照检查材料
2014/08/27 职场文书
材料员岗位职责
2015/02/10 职场文书
高温慰问简报
2015/07/21 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js