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 相关文章推荐
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
基于DataFrame改变列类型的方法
Jul 25 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
python redis连接 有序集合去重的代码
Aug 04 Python
python如何将多个PDF进行合并
Aug 13 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
如何基于pandas读取csv后合并两个股票
Sep 25 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
德劲1107的电路分析与打磨
2021/03/02 无线电
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
简单实现PHP留言板功能
2016/12/21 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
利用python获得时间的实例说明
2013/03/25 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
pandas 层次化索引的实现方法
2019/07/06 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
计算机网络毕业生自荐信
2013/10/01 职场文书
优秀英语专业毕业生求职信
2013/11/23 职场文书
机电一体化专业求职信
2014/07/22 职场文书
好好学习保证书
2015/02/26 职场文书
商场收银员岗位职责
2015/04/07 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
Python基本知识点总结
2022/04/07 Python