深入分析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 Requests安装与简单运用
Apr 07 Python
python爬虫之百度API调用方法
Jun 11 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
Python3enumrate和range对比及示例详解
Jul 13 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 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 静态页面中显示动态内容
2009/08/14 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
python解析模块(ConfigParser)使用方法
2013/12/10 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
python查看模块安装位置的方法
2018/10/16 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
药学专业大学生自荐信
2013/09/28 职场文书
乔迁宴答谢词
2014/01/21 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
北京爱情故事观后感
2015/06/12 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
基于flask实现五子棋小游戏
2021/05/25 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python