json文件存储
import json
# 读
with open('data.json', 'r', encoding='utf-8') as fp:
data = json.loads(fp.read())
# 写,且具备缩进与中文显示
with open('data.json', 'w', encoding='utf-8') as fp:
fp.write(json.dumps(data, indent=2, ensure_ascii=False))
xlsx文件存储
# 写
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.append(["我", "你", "她"])
wb.save(filename="data.xlsx")
# 读
from openpyxl import load_workbook
# 打开一个workbook
wb = load_workbook(filename="data.xlsx")
# 获取当前活跃的worksheet,默认就是第一个worksheet
# ws = wb.active
# 当然也可以使用下面的方法
sheets = wb.sheetnames
sheet_first = sheets[0]
ws = wb[sheet_first]
rows = ws.rows
columns = ws.columns
# 迭代所有的行
for row in rows:
line = [col.value for col in row]
print(line)
# 迭代所有的列
for column in columns:
line = [ro.value for ro in column]
print(line)
cvs文件存储
import csv
# 写入, 方法一(追加用a):
# 参数newline,防止行与行之间多处空行;想修改列与列之间的分隔符,可以传入delimiter参数
# 出现中文乱码改用encoding='utf-8-sig'
with open('data.csv', 'w', encoding='utf-8', newline='') as csv_file:
writer = csv.writer(csv_file, delimiter=',')
writer.writerow(['id', 'name', 'age'])
writer.writerow(['1001', 'aici', '22'])
writer.writerow(['1002', 'iicey', '24'])
writer.writerow(['1003', 'ice', '18'])
# 写入, 方法二(二维列表):
with open('data.csv', 'w', encoding='utf-8', newline='') as csv_file:
writer = csv.writer(csv_file, delimiter=',')
writer.writerow(['id', 'name', 'age'])
writer.writerows([['1001', 'aici', '22'], ['1002', 'iicey', '24'], ['1003', 'ice', '18']])
# 写入, 方法三(字典):
with open('data.csv', 'w', encoding='utf-8', newline='') as csv_file:
fieldnames = ['id', 'name', 'age']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'id': '1001', 'name': 'aici', 'age': '22'})
writer.writerow({'id': '1002', 'name': 'iicey', 'age': '24'})
writer.writerow({'id': '1003', 'name': 'ice', 'age': '18'})
# 读取, 方法一:
import csv
with open('data.csv', 'r', encoding='utf-8', newline='') as csv_file:
reader = csv.reader(csv_file)
print(list(reader))
# 读取, 方法二:
import pandas as pd
df = pd.read_csv('data.csv')
print(df)