当前位置: 首页 > news >正文

吉林省住房和城乡建设厅网站官网此网站三天换一次域名

吉林省住房和城乡建设厅网站官网,此网站三天换一次域名,怎么样免费建设网站,广东建设执业资格注册管理中心网站大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学…

0

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为文件存储。

概述

前几期文章中我们已经了解到了请求库、解析库的使用,已经学会了如何向目标网站发送请求以及解析响应信息,那么我们还需要知道如何将数据进行存储。数据存储有很多方式,本期会介绍如何将数据存入文本文件,如 TXT、JSON、CSV 等。

TXT 文件存储

介绍

TXT文件存储是最基本的数据存储方式,TXT 文本文件基本上兼容任何平台,因此它的应用也非常广泛。使用代码操作 TXT 文件十分简单,但是缺点也非常明显,不利于对数据进行检索。

使用

Python 中操作 TXT 文件需要使用到内置的 open() 函数。

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

open() 函数有七个参数分别为:

file:文件路径

mode:打开方式,默认为(r)只读模式

buffering:文件缓冲

encoding:字符编码

errors:报错级别

newline:换行模式,默认以\n换行

closefd:控制在关闭文件时是否彻底关闭文件

文件打开方式分为以下几种:

r:以只读方式打开文件

w:以写入方式打开文件。如果文件存在则覆盖原文件,不存在则新建。

x:创建新文件并以写入方式打开文件

a:以追加方式打开文件。如果文件存在,则在结尾位置写入,不存在则新建。

b:二进制模式

t:文本模式

+:读取与写入

wb:以二进制写入方式打开文件。如果文件存在则覆盖原文件,不存在则新建。

w+:以读写方式打开文件。如果文件存在则覆盖原文件,不存在则新建。

wb+:以二进制读写方式打开文件。如果文件存在则覆盖原文件,不存在则新建。

ab:以二进制追加方式打开文件。如果文件存在,则在结尾位置写入,不存在则新建。

ab+:以二进制追加读写方式打开文件。如果文件存在,则在结尾位置写入,不存在则新建。

f = open('data.txt','r',encoding="utf-8")
f.seek(2) #从指定下标位置开始读取
data = f.read()
f.close()
f = open('data.txt','w',encoding="utf-8")
f.write('hello')
f.write(' ')
f.write('world')
f.close()
#hello world

上下文管理器

上文中可以看到,对一个文件进行读写操作后需要使用 close() 方法关闭文件。如果不使用 close() 关闭文件会导致资源泄露问题。为了避免这个问题和优化代码,我们可以使用上下文管理器来操作文件。

with open('data.txt','w',encoding='uutf-8')as f:f.write('hello')f.write(' ')f.write('world')

当 with 语句块结束后文件会自动关闭,这样不需要再调用 close() 方法。

JSON 文件存储

介绍

JSON 全称为 JavaScript Object Notation,也就是 JavaScript 对象标记,是一种轻量级的数据交换格式。人们可以很容易的对 JSON 格式的数据进行阅读和编写,同时也方便了机器进行解析和生成。JSON 采用完全独立于程序语言的文本格式,但是也使用了类 C 语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使 JSON 成为理想的数据交换语言。

JSON 通过对象和数组的组合来表示数据,而在 JavaScript 中,一切皆为对象,因此任何数据类型都可以通过 JSON 来表示。

在 JavaScript 中 JSON 通常以对象或数组的形式存在。对象形式为被花括号包裹的键值对结构,如 { key1 : value1, key2 : value2 },key表示对象的属性,value表示对象的值。数组形式与对象形式的区别就在于它是被方括号所包裹,如[{ key1 : value1}, {key2 : value2}]。对象形式与数组形式可以自由组合,任意嵌套。JSON中字符串类型的数据需要以双引号包围。

JSON 的这种结构非常简洁清晰,且结构化程度很高,因而被广泛使用。

使用

JSON 是一个数据格式,本质上是纯字符串类型,在 Python 中它可以被转换为对应的数据类型,如对象形式可以被转换为字典,数组类型可以转换为列表。Python 中内置了一个强大的 JSON 库,通过它可以简便的实现 JSON 文件的读写操作。

JSON 库提高了四个方法:

json.dump():将 JSON 对象写入文件

json.dumps():将Python对象编码成 JSON 字符串

json.load():从 JSON 文件中读取数据

json.loads():将已编码的 JSON 字符串解码为Python对象

下面我们以这段数据作为示例:

{"1001": {"name": "张三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}

读取数据

data.json 文件内容为示例 JSON 数据。

with open('data.json','r',encoding='utf-8')as f:data = f.read()print(type(data))
#输出:<class 'str'>

可以看到,我们直接从 JSON 文件里面读取的数据是字符串类型,这不利于我们对它进行操作,我们可以使用 json.loads() 方法将 JSON 字符串转换为字典类型。

import jsonwith open('data.json','r',encoding='utf-8')as f:data = f.read()print(type(data))
data = json.loads(data)
print(type(data))
#输出:
#<class 'str'>
#<class 'dict'>

我们也可以使用更加简洁的写法,通过 json.load() ,直接对文件操作对象进行解析。

import jsondata = json.load(open('data.json',encoding='utf-8'))print(type(data))
#输出:<class 'dict'>

写入数据

使用 write() 方法写入文件时,它只能传入字符串类型的数据。因此我们需要将字典数据先转换为 JSON 字符串,可以通过 json.dumps() 方法实现。

import jsondata = {"1001": {"name": "张三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}print(data)
data = json.dumps(data)
print(type(data))
with open('data.json','w',encoding="utf-8")as f:f.write(data)
#输出:
#<class 'dict'>
#<class 'str'>

当然,将数据写入文件也有更加简便的方法。

import jsondata = {"1001": {"name": "张三","age": 21,"gender": "female"},"1002": {"name": "李四","age": 22,"gender": "male"}
}json.dump(data,open('data.json','w',encoding='utf-8'),indent=2,ensure_ascii=False)

CSV 文件存储

介绍

CSV 全称 Comma-Sparated Values(逗号分隔值),它以纯文本形式存储数据表格。CSV 文件是一个字符序列,它由任意数目的记录组成,记录之间以某种换行符分隔。文件的每条记录由字段和字段值组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。CSV 并不是一种单一的、明确定义的文本格式,它泛指具备以下特征的任何文件:

  1. 纯文本呢,使用某个字符集

  2. 由记录组成

  3. 每条记录被分隔符分隔为字段

  4. 每条记录都有相同的字段序列

使用

Python 中提供了一个内置的 csv 库来对 CSV 文件进行操作。

写入

import csv#writerow默认换行,因此需要通过 newline 将换行符设置为空,避免重复换行
with open('data.csv','w',encoding='utf-8',newline="") as csvfile:#delimiter:指定分隔符,默认为逗号writer = csv.writer(csvfile,delimiter = " ")#写入一行writer.writerow(['id', 'name', 'age'])writer.writerow(['1001', 'jack', 15])writer.writerow(['1002', 'marin', 22])writer.writerow(['1003', 'alex', 19])#写入多行writer.writerows([['1004', 'lucy', 23],['1005', 'john', 30]])

csv库也提供了其它的写入方法

import csvwith open('data.csv','w',encoding='utf-8',newline="") as csvfile:#字典写入对象writer = csv.DictWriter(csvfile,fieldnames=['id','name','age'])writer.writeheader()writer.writerow({'id':'1001','name':'jack','age':21})writer.writerow({'id': '1002', 'name': 'marin', 'age': 22})writer.writerows([{'id': '1003', 'name': 'lucy', 'age': 23},{'id': '1004', 'name': 'mike', 'age': 22}])

读取

import csvwith open('data.csv','r',encoding='utf-8')as csvfile:reader = csv.reader(csvfile)for row in reader:print(row)

总结

上文中讲到了 TXT、JSON、CSV 三种文件的存储方式,介绍了如何对这些文件进行读写操作。文本文件存储的优势在于简单、方便,适合存储少量信息,但想要规范的储存数据的话并不推荐使用文本文件储存。

http://www.yidumall.com/news/109184.html

相关文章:

  • 广州网站开发设计google play商店
  • 网站数据接口怎么做如何做seo搜索引擎优化
  • 做外汇必须要网站黑帽seo培训大神
  • 百度网站排名关键词整站优化百度市场应用官方app
  • 素材网网站建设seo培训课程
  • 网站网络营销方案网推app怎么推广
  • 哪些网站可以做翻译兼职行业关键词查询
  • 公司做网站怎么赚钱吗营销推广方式都有哪些
  • 怎么做内网网站站长之家域名查询
  • 长沙网站制作企业排名优化公司
  • 做推送的网站有哪些b站推广
  • 网站建设文档微博营销推广策划方案
  • wordpress搬家 500seo哪家好
  • 益阳有专做网站的吗2024会爆发什么病毒
  • 人人做免费网站抖音seo关键词优化排名
  • 网站建设国际深圳重庆整站seo
  • 团风做网站搭建网站的步骤和顺序
  • 厦门国外网站建设公司哪家好网站目录
  • 网站的回到顶部怎么做宁波网络推广方式
  • 怎么制作弹幕网站网站的推广方式
  • 云南网站建设公司排名郑州seo培训班
  • 网站上线有什么线上活动可以做百度网盘手机版
  • 网站实现功能在线之家
  • 免费用搭建网站沈阳seo排名收费
  • 怎么查网站icp备案宁波seo高级方法
  • 公司网站建设一定要求原图吗谷歌优化排名公司
  • 云服务器是否可以做多个网站厦门推广平台较好的
  • 什么公司做网站最好备案查询站长工具
  • 手机网站登陆模板游戏代理平台
  • 拓客系统seo代码优化有哪些方法