深入分析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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python pandas常用函数详解
Feb 07 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
kafka-python批量发送数据的实例
Dec 27 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Django自定义YamlField实现过程解析
Nov 11 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
python+opencv实现车道线检测
Feb 19 Python
tensorflow2.0教程之Keras快速入门
Feb 20 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
FCKeditor添加自定义按钮
2008/03/27 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
使用python加密自己的密码
2015/08/04 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
python中os.remove()用法及注意事项
2021/01/31 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
元旦联欢会主持词
2014/03/26 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
小学思品教学反思
2016/02/20 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL