深入分析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模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python 列表list使用介绍
Nov 30 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
Python快速查找list中相同部分的方法
Jun 27 Python
在Python中表示一个对象的方法
Jun 25 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
python如何删除文件中重复的字段
Jul 16 Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
python 的topk算法实例
Apr 02 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 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
一次编写,随处运行
2006/10/09 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
php中的ini配置原理详解
2014/10/14 PHP
php之curl设置超时实例
2014/11/03 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
浅析Prototype的模板类 Template
2011/12/07 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
python抓取网页中的图片示例
2014/02/28 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
django-allauth入门学习和使用详解
2019/07/03 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
python入门之基础语法学习笔记
2020/02/08 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
创业计划实施的7大步骤
2014/02/05 职场文书
土地转让协议书
2014/09/27 职场文书
2015年消防工作总结
2015/04/24 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js
Win11 BitLocker 驱动器加密
2022/04/19 数码科技