Python3实现数据存储为json、csv、xlsx

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)