深入分析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根据距离和时长计算配速示例
Feb 16 Python
Python装饰器原理与用法分析
Apr 30 Python
python处理csv中的空值方法
Jun 22 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python实现淘宝秒杀脚本
Jun 23 Python
python画图把时间作为横坐标的方法
Jul 07 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 Python
python常用运维脚本实例小结
Feb 14 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
python从ftp获取文件并下载到本地
Dec 05 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中使用redis队列操作实例代码
2013/02/07 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
php中错误处理操作实例分析
2019/08/23 PHP
接收键盘指令的脚本
2006/06/26 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
js读取配置文件自写
2014/02/11 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
争论的故事教学反思
2014/02/06 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python