Python爬虫数据的分类及json数据使用小结


Posted in Python onMarch 29, 2021

数据的结构化分类

一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为三部分,结构化的数据、半结构化的数据和非机构化数据。

1.结构化数据:
可以用统一的结构加以表示的数据。可以使用关系型数据库表示和存储,表现为二维形式的数据,一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行的数据的属性是相同的。

2.半结构化数据:
结构化数据的一种形式,并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此他也被成为自描述的结构。常见的半结构数据有:html,xml和json等、实际上是以树或者图的结构来存储的。

对于半结构化数据,节点中属性的顺序是不重要的,不同的半结构化数据的属性的个数是不一样的。这样的数据格式,可以自由的表达很多有用的信息,包含自描述信息。所以半结构化数据的扩展性很好,特别适合于在互联网中大规模传播。

3.非结构化数据
就是没有固定的结构。各种文档,图片,视频或者音频都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制形式。

json数据

json(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。他基于ECMAScript(w3c制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简介和清晰的层次结构使得JSON成为理想的数据交换语言。

特点:易于阅读、易于机器生成、有效提升网络速度。
JSON语法规则:在JS语言中,一切都是对象。因此,任何支持的类型都可以通过json来表示。例如字符串、数字,对象,数组。

Js中对象和数组是比较特殊并且常用的两种类型:

  1. 对象表示为键值对{name:'zhangsan',age:'7'}
  2. 数据有逗号分隔[1,2,3,4,5]
  3. 花括号保存对象
  4. 方括号保存数组。

js的对象就相当于python中的字典
js的数组就相当于Python中的列表
因为json用来存储js的对象或者数组,所以在Python中我们可以将json转化为list或者dict。

解析json的包json:

json.dumps(python的list或者dict)---->(返回值)---->json字符串。
json.loads(json字符串)------>(返回值)----->python的list或者dict.

json.dump(list/dict,fp)—>list,或者字典保存到json文件中。
json.load(fp)—>list/dict:从json文件中读出json数据。

json键值对是用来保存js对象的一种方式,和js对象的写法页大同小异,比如:
{“firstName”:“Json”,“Class”:“aid1111”}等价于下面这条js语句:{firstName:“Json”,Class:“aid1111”}。

很多人搞不清楚json和js对象的关系,甚至谁是谁都不清楚。其实可以这么理解:
【JSON是JS对象的字符串表达式,他使用文本形式表示一个JS对象的信息,本质是一个字符串。】

如var obj = {a:“hello”,b:“World”}这是一个js对象。注意,键名也是可以用引号包裹的var json = ' {“a”:“hello”,“b”:“World”}'这是一个json字符串,本质上是一个字符串。

JSON作为数据包格式传输的时候具有更高的效率,这是因为JSON不想xml那样具有严格的闭合标签,这就让有效数据量与总数据包比大大提升,从而减少同等数据流量的情况下,网络的传输的压力大大减低。

Python 相关文章推荐
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
Python排序算法实例代码
Aug 10 Python
python实现图片文件批量重命名
Mar 23 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
Python装饰器基础概念与用法详解
Dec 22 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
只用40行Python代码就能写出pdf转word小工具
May 31 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 Python
python re模块和正则表达式
Mar 24 #Python
opencv实现图像几何变换
PyQt QMainWindow的使用示例
Mar 24 #Python
PyQt 如何创建自定义QWidget
Mar 24 #Python
解决python 输出到csv 出现多空行的情况
opencv实现图像平移效果
python+selenium小米商城红米K40手机自动抢购的示例代码
You might like
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
数控专业个人求职信范文
2014/02/05 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
入党积极分子群众意见
2015/06/01 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
html5调用摄像头实例代码
2021/06/28 HTML / CSS
Python字符串的转义字符
2022/04/07 Python