首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python之数据存储

一般爬取完数据都需要保持数据的持久性,这时候可能需要存入本地或数据库上。

参考书籍:python3 网络爬虫实战

文件存储形式

多种多样,比如可以保存为 TXT 文本格式,也可以保存为 JSON 格式、CSV 格式、Excel 格式

TXT 文本格式

txt 文本格式操作非常简单,但是缺点就是不利于检索与查看,用于 TXT 文本存储的好处有

几乎兼容所有平台

存储占用内存较小

接下来简单举个例子来看看

看看结果

非常好理解。但是我们注意到 open 的第二个参数是代表什么意思呢?这个其实就是打开方式。

r: 只读方式。这是默认模式

rb: 以二进制只读方式。

r+: 读写方式。

w: 写入方式。如果文件已存在则将其覆盖,如果不存在,创建新文件。

w+: 读写方式。规则与上相同。

a: 追加模式。新的内容添加至文件末尾。不存在,创建新文件写入。

ab: 二进制追加。规则同上。

一般用的比较多就这些,可供参考。

简化写法

文件读写可以有另一种简化形式,用语法。在 with 控制块结束时,文件会自动关闭,就不需要调用 close() 方法了。挺实用的!

结果为

非常方便,下面各种格式也通过这种简写方式来读写文件。

JSON 格式

JSON,又称 JavaScript 对象标记,通过对象与数组的组合来表示数据,它是一种轻量级的数据交互格式。

JSON 数据需要用双引号来包围,使用单引号会出错。

对象:用花括号 {} 包裹起来

数组:用中括号 [] 包裹起来

一个 JSON 对象格式如下:

读取 JSON

python 为我们提供了 json 库来供我们实现 json 文件的读写操作。

json.loads()

将 json 文本字符串转化为 json 对象

json.dumps()

将 json 对象转化为文本字符串

输出为

可以看出方法将 json 文本字符串转化为 json 对象,以列表形式呈现。

既然是列表,我们可以通过索引的方式获取。

两种方式索引数据

假如我们本地有一个 data.json 文件

在我的 json_test.py 文件上

输出为

输出 JSON

转化为 dumps 格式,重新写入 data.json 文件上。

想改为 json 格式,通过加入第二个参数即可

这样的到内容会自动缩进,格式会更加清晰。

如果含有中文,可以

CSV 格式

逗号分隔,其文件以纯文本形式存储表格数据。

相比于 Excel 文件更加简洁,CSV 要求是纯文本,不包含公式,数值,格式等内容。

写入

data.csv 输出为 (电脑可以用 Excel 表格打开)

writerows() 可以传入多行,也就是二维列表

不过这种传输方式不太符合我们的结构化数据,即字典数据类型。

在这里我们先定义了三个字段,传给方法的属性,然后调用方法写入作为头信息,然后再调用方法传入相应字典即可。

这样就可以完成字典导入 csv 文件

读取

很简单

结果为

以一行一行输出,每一行都是列表格式。当然,如果我们想以字典形式输出,python 提供了方法。

结果为

这个结构明显更清晰明了。

数据库

关系型数据库

关系型数据库是基于关系模型的数据库,通过二维表来保存。

一般有 SQLite、MySQL、Oracle、SQLserver 等

非关系型数据库

NoSQL,是基于键值对的,不需要经过 SQL 层的解析,数据之间没有耦合性,性能比较高。

一般对于爬虫数据存储来说,有时候数据之间还存在嵌套关系,比如表中有表,这时候如果用关系型数据库就不太方便了。

一般有 MongoDB、Redis 等

数据库这里就懒得操作了,之前已经有类似的调用经验了,虽然是别的语言,但是基本都类似的。

not end

python 学习笔记

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181027G1PTL900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券