深入分析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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
基于python的图片修复程序(实现水印去除)
Jun 04 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
django 模版关闭转义方式
May 14 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
python中entry用法讲解
Dec 04 Python
python pyhs2 的安装操作
Apr 07 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 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数组函数
2008/08/18 PHP
php 小乘法表实现代码
2009/07/16 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
解决c++调用python中文乱码问题
2020/07/29 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
债务授权委托书范本
2014/10/17 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
MySQL基于索引的压力测试的实现
2021/11/07 MySQL