爬虫常用本地存储形式(TXT,JSON,CSV)

在这里插入图片描述

一,TXT存储

TXT格式读写在本站中的详细解释

1.读取/写入模式

在这里插入图片描述
在这里插入图片描述

2.使用演示

#常规写法
file = open('explore.txt','a',encoding='utf-8')
file.write ('\n'.join([question, author, answer]))
file.write('\n'+ '= '*50 +'\n') 
file. close()

#不用关闭指针的简化写法
with open('./song.txt','w',encoding='utf-8') as fp:
    fp.write(resp.text)

二,JSON存储

1.序列与反序列化函数区别

在这里插入图片描述
在这里插入图片描述

2.使用演示

######读取json数据######
import json

str = json格式数据

data = json.loads(str)
print(data)

with open("douban.json","r",encoding="utf-8") as f:
    res = json.load(f)
    print(res)
    print(type(res))

######保存json数据######
import json


#json.loads把json字符串转化为python类型
data = json.loads(html.content.decode())

#json.dumps能够把pyton类型转化为json类型(写文件时用)
with open("html.json", "w", encoding='utf-8') as f:
    f.write(json.dumps(data, ensure_ascii=False, indent=2)) # 默认为True为ascii编码,当内容有中文字符时就要设置为假  indent参数表示下一级距离上一级都空两格
    f.write(str(data))#也可以实现存入信息,但是格式就没有json那么好看

三,CSV存储

############################常规写法###################
#常规写入文件,逐行写入
import csv

f = open("data.csv", mode="w",encoding = "utf-8")
csvwriter = csv.writer(f)
for row_data in result:
	csvwriter.writerow(row_data)
#常规读取文件,逐行读
import csv

f = open("data.csv", mode="r",encoding = "utf-8")
csvreader = csv.reader(f)
for row_data in csvreader:
	print(row_data)


############################简化写法###################
#简化写,多行同时写
import csv

with open("data.csv", mode="w",encoding = "utf-8") as csvfile:
	csvwriter = csv.writer(csvfile)
	csvwriter = csv.writer(csvfile,delimiter = ' ') #里在初始化写入对象时传入 delimiter 为空格,此时输出结果的每一列就是以空格分隔了,默认是逗号分割
	csvwriter.writerow(['id','name','age']) #单次写单行数据
	csvwriter.writerow(['1','mile','15'],['2','song','7'],['3','wang','23']) #单次写多行数据

	#字典形式数据的写入方式,读取用csv.DictReader
	data_columns = ['id','name','age']
	writer = csv.DictWriter(csvfile,fieldnames = data_columns)
	writer.writeheader() #写入头信息
	writer.writerow({'id':'1','name':'mike','age':'15'})

#简化读
import csv

with open('data.csv','r',encoding = 'utf-8') as csvfile:
	csvreader = csv.reader(csvfile)
	for row_data in csvreader:
		print(row_data)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>