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 相关文章推荐
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
python实现彩色图转换成灰度图
Jan 15 Python
python 杀死自身进程的实现方法
Jul 01 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
python3 logging日志封装实例
Apr 08 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 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
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php中用memcached实现页面防刷新功能
2014/08/19 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python3实现逐字输出的方法
2019/01/23 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Python decimal模块使用方法详解
2020/06/08 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
java关于string最常出现的面试题整理
2021/01/18 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
洗发露广告词
2014/03/14 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android