深入分析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内置函数bin() oct()等实现进制转换
Dec 30 Python
python遍历类中所有成员的方法
Mar 18 Python
Python判断字符串与大小写转换
Jun 08 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
MAC中PyCharm设置python3解释器
Dec 15 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
Django渲染Markdown文章目录的方法示例
Jan 02 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 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实现文件编码批量转换
2014/03/10 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php常用数学函数汇总
2014/11/21 PHP
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
python中实现k-means聚类算法详解
2017/11/11 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
Python实现自动装机功能案例分析
2020/10/22 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
爸爸的花儿落了教学反思
2014/02/20 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL