1.TXT文本文件存储
此处省略。。。。。。。。。。
2.JSON文件存储
1.任何支持的数据类型都可以通过JSON来表示。
eg:字符串、数字、对象、数组等。下面介绍一下对象和数组。
① 对象
在JavaScript 中是用花括号{ }包围起来的内容,数据结构是{key1:value1,key2:value2,.....}
key表示对象的属性,可以使用整数或者字符串
value表示属性对应的值,可以是任意类型
② 数组
用中括号[ ]包围起来的内容,数据结构是["zz","asd",....]
数组也可以像对象那样使用键值结构,但还是索引结构用得更多。它的值可以是任意类型
[{ },{ }]
由[ ] 包围的内容相当于数组,数组的每个元素都可以是任意类型,这个实例的元素是对象,由{ }包围
2.介绍loads,load,dumps,dump方法
loads()方法将json文本字符串转为json对象,其操作对象是json字符串 (用于读取)
eg: with open("data.json","w",enconding = "utf-8") as csvfile:
str= file.read(); data = json.loads(str)
load ()与loads方法一样,不过它的操作对象的文件
eg: data = json.load(open('data.json',enconding='utf-8'))
dumps() 方法将json对象转换为json文本字符串 (用于写入)
dump()与dumps方法一样,不过它的操作对象的文件
3.用索引获取内容,推荐使用get方法,因为即使域名不存在,也不会报错,只会返回None值。
值得注意,json的数据需要用双引号包围起来,不能用单引号,否则就是报错。
4.写入数据的时候,在file.write(json.dumps(str,indent =2,ensure_ascii=False))
indent代表缩进字符的个数,用于美观
ensure_ascii = False 指定参数为False,以及规定文件输出的编码(enconding = "utf-8")保证中文的输出!
3.CSV文件存储
import csv csvfile = open('data1.csv', 'w',newline='') # 如果想修改行与列的分隔符,可以传入delimiter参数 writer = csv.writer(csvfile,delimiter=' ') writer.writerow(['1001','name1',10]) writer.writerow(['1002','name2',20]) writer.writerow(['1003','name3',30]) writer.writerow(['1004','name4',40]) # writerows的参数是二维列表 # writer.writerows([['1001','name1',10],['1002','name2',20],['1003','name3',30],['1004','name4',40]]) # 或者写入多行 # 一般爬取的都是结构化数据,一般会用字典来表示这种数据 # 添加中间参数newline=‘’,表示写完一行接着写第二行,排除中间出现一个大空行 with open('data2.csv', 'w',newline='') as csvfile: fieldnames = ['id','name','age'] writer = csv.DictWriter(csvfile,fieldnames=fieldnames) writer.writeheader() writer.writerow({'id':'1001','name':'name1','age':'10'}) writer.writerow({'id':'1002','name':'name2','age':'20'}) writer.writerow({'id':'1003','name':'name3','age':'30'}) # 给open参数指定编码格式,写入中文内容。 with open('data2.csv','a',encoding='utf-8',newline='') as csvfile: fieldnames = ['id', 'name', 'age'] writer = csv.DictWriter(csvfile,fieldnames=fieldnames) writer.writerow({'id': '1004', 'name': 'name4', 'age': '40'}) # 读取内容 with open('data2.csv','r',encoding='utf-8') as csvfile: reader = csv.reader(csvfile) for row in reader: print(row) # pandas 库 import pandas as pd data = [ {'id':'10001','name':'mike','age':'9999'} ] df = pd.DataFrame(data) df.to_csv('data1.csv',index=False) # 保存数据 # 读取内容也包括前面的头标题 df = pd.read_csv('data1.csv') print(df) # 只读取数据的话 df = pd.read_csv('data1.csv') data = df.values.tolist() # 将数据转化为列表 print(data) # 内容的遍历 df = pd.read_csv('data1.csv') for index,row in df.iterrows(): print(row.tolist())