深入分析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中__call__内置函数用法实例
Jun 04 Python
python根据日期返回星期几的方法
Jul 06 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
Python自动化操作实现图例绘制
Jul 09 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
Python字典实现伪切片功能
Oct 28 Python
利用Python判断你的密码难度等级
Jun 02 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 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP 替换模板变量实现步骤
2009/08/24 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
详解flask表单提交的两种方式
2018/07/21 Python
Django 路由层URLconf的实现
2019/12/30 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
车间班组长的职责
2013/12/13 职场文书
网络研修随笔感言
2014/02/17 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
社区服务活动小结
2014/07/08 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
运动会入场词
2015/07/18 职场文书
初二数学教学反思
2016/02/17 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
Python中相见恨晚的技巧
2021/04/13 Python