之前课程中我们将获取到的数据存储到了多个json文件中,
虽然完成了数据的存储,但数据分散,且不直观,也无法分析。
故本节课,将数据存储到excel中能更便于查看和分析。

本课使用数据集如下(就是上节课的代码下载的,只不过我下载的数据量比较大):
新发地34W条数据.zip

openpyxl库的使用

openpyxl 是一个 Python 库,用于操作 Excel 文件(.xlsx 格式)。它允许你读取、写入和修改 Excel 文件中的数据,并提供了丰富的功能来处理工作表、单元格、图表等。下面是一些 openpyxl 库的基本用法:

后续学习了pandas后会有更好的应用方式,先按下不表。

安装

首先,你需要安装 openpyxl 库。你可以使用 pip 来进行安装:

pip install openpyxl

写:创建一个 Excel 文件

from openpyxl import Workbook

# 创建一个工作簿
workbook = Workbook()

# 激活一个工作表
sheet = workbook.active

# 向单元格写入数据
data_row=['a1','b1']
sheet.append(data_row)
# 保存工作簿
workbook.save(filename="example.xlsx")

读:打开并读取 Excel 文件

from openpyxl import load_workbook

# 打开现有的 Excel 文件
workbook = load_workbook(filename="example.xlsx")

# 获取默认工作表
sheet = workbook.active

# 读取单元格数据
print(sheet['A1'].value)  
print(sheet['B1'].value)  

读:遍历工作表中的数据

# 遍历行
# values_only=True: 这是一个参数,用于指定是否只返回单元格的值而不返回其他元数据。设置为 True 表示只返回单元格的值,而不包括格式、样式等其他信息。
for row in sheet.iter_rows(values_only=True):
    print(row)

# 遍历列
for column in sheet.iter_cols(values_only=True):
    print(column)

项目: 北京菜场数据excel存储代码

不要重新爬取了,直接下载以下文件:

import json
from openpyxl import Workbook
file_list=[]
for i in range(1,1153):
    file_list.append("./2.2 json文件/"+str(i)+".数据.json")
print(file_list)

# 创建一个工作簿对象
wb = Workbook()
# 激活工作表
ws = wb.active
header = ['菜名', '类别', '均价', '规格信息', '单位信息', '更新时间']
ws.append(header)
for filename in file_list:
    with open(filename, 'r',encoding='utf-8') as json_file:
        data = json.load(json_file)
        for i in range(0,len(data['list'])):
            #菜名
            prodName=data['list'][i]['prodName']
            #类别
            prodCat=data['list'][i]['prodCat']
            #均价
            price=data['list'][i]['avgPrice']
            #规格信息
            specInfo=data['list'][i]['specInfo']
            #单位信息
            unitInfo=data['list'][i]['unitInfo']
            #更新时间
            pubDate=data['list'][i]['pubDate']
            
            prod_item=[prodName,prodCat,price,specInfo,unitInfo,pubDate]
            print(prod_item)
            ws.append(prod_item)



wb.save('./data.xlsx')

试着打开excel进行分析

data.xlsx

34万条数据,只有10M。远远谈不上大数据,大数据至少上G级别。但也能发现已经非常挑战excel的性能了。

故,接下来我们使用mysql进行数据存储。用dataease实现数据可视化(仪表盘)。

作业:

提交mysql创建数据库的sql语句。结构如下:

列名idprodNameprodCatavgPricespecInfounitInfopubDate
类型PRIMARY KEYVARCHARVARCHARDECIMALVARCHARVARCHARDATE

请提交创建数据库的mysql语句,并对其中部分关键词进行解释。