深入分析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实现简单截取中文字符串的方法
Jun 15 Python
利用Python实现Windows定时关机功能
Mar 21 Python
Python iter()函数用法实例分析
Mar 17 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
python实现在线翻译
Jun 18 Python
浅析Python 条件控制语句
Jul 15 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
Python如何执行系统命令
Sep 23 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/07/12 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
表单提交验证类
2006/07/14 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
取选中的radio的值
2010/01/11 Javascript
jquery json 实例代码
2010/12/02 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
详解tensorflow实现迁移学习实例
2018/02/10 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
领导批评与自我批评范文
2014/10/16 职场文书
教师个人自我评价
2015/03/04 职场文书
小学数学国培研修日志
2015/11/13 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
实战Python爬虫爬取酷我音乐
2022/04/11 Python
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL