Python 课前铺垫 实验数据 · 解析 · 控制 · 仿真
Python 引擎未连接

科研自动化课程 · 课前装备

给课程里真实出现的数据,一个 Python 能处理的位置

这门课会反复遇到传感器报文、实验记录表、云端 JSON、阈值控制与图表。 这里不讲整本 Python,只讲课前最需要的四件事:看懂数据形态、读写实验数据、理解类和库、亲手跑通采集到控制的链路。

课前准备进度 0 / 4

模块 A · 数据形态与容器

先判断数据是“几条、几字段、带不带名字”

同一个实验里会出现不同长相的数据。写代码之前先回答三个问题:一共有几条记录? 每条记录有几个值?后续要按字段名查找还是按顺序遍历?

课程触点:第 3-5 周环境感知与温湿度采集

一行报文 / 原始文本

"T:25.3 H:60.2 PM2.5:38"

先当字符串处理:清洗空格、按分隔符拆开,再逐段转成数值。

一条带名字的观测

{"time":"09:31","temp":25.3,"hum":60.2}

同一个时间点有多个字段,适合用字典保存字段名与数值。

同类型有序读数

[25.3, 25.8, 26.1, 25.9]

只关心顺序和长度时用列表,例如连续一小时温度序列。

整张多行实验表

[{"time":"09:00","temp":25.3}, {"time":"09:01","temp":25.8}]

一批结构相同的记录适合“列表套字典”,每行是一条字典。

1
多少条?

一条看文本细节,多条准备“逐行循环”。

2
每条约几个值?

单个值可用列表;多个值必须想清楚哪些是字段。

3
按名字还是按顺序?

以后要写 row["temp"] 就选字典;只做序列运算就选列表。

先分类,再动手

输入是 "T:25.3 H:60.2 PM2.5:38",第一件要做的事是?

还没有选择

连续一小时每分钟记一个温度,只想算平均和最高,容器选?

还没有选择
把传感器报文拆成一条字典记录
输出
点击“运行 Python”后显示结果。

模块 B · 字符串拆分与数据读写

从“一句话”到“一张表”:实验数据的解析与落盘

传感器常把多个值拼在一行里;实验软件又把多行记录存成 CSV 或 JSON。 课前要会的是三步:去掉多余空格、按分隔符拆开、把带名字的记录写回标准格式。

课程触点:第 3-7 周采集、存储与数据处理
01
原样保留表头

CSV 的第一行是字段名,之后每行是一条记录。

02
用库而不是手拼

csv.DictReader 负责表头映射,比手工切片更少出错。

03
写出时也带表头

写 CSV 使用 utf-8-sig,Excel 打开中文不会乱码。

可以上传自己的 CSV

文件不会离开浏览器。上传后内容进入输入框,用同一套 Python 解析并展示成记录。

with open("lab_log.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.DictWriter(f, fieldnames=headers)
    writer.writeheader()
    writer.writerows(records)
读取 CSV 并输出标准 CSV
输出
可先运行示例,再上传自己的 CSV。

模块 C · 类和库

库是输入输出约定,类是把设备状态装进一个模板

不熟悉类与库时,先不要读实现源码。先问这个库给我什么输入、我取什么输出; 再问哪些函数和数据总一起出现,那部分才适合封装成类。

课程触点:第 6-9 周云平台接口与设备对象

json

输入 JSON 文本,输出字典或列表;API 回包最常见。

第 6 周 Uni-Lab

csv

输入带表头的表格,输出一行一个字典。

第 3-7 周记录存储

sqlite3

输入 SQL 与记录,输出可查询的本地表。

第 6 周数据管理

requests

输入 URL 与参数,输出响应;先用 .json() 取数据。

第 6 周云端下发指令

matplotlib

输入序列或字段,输出折线、散点与拟合结果。

第 7-8 周表征与可视化
JSON 进内存数据库:字段名不再丢
输出
两条示例会分别演示 json + sqlite3 与 Sensor 类。

模块 D · 仿真实验台

让同一批数据完整走一遍:采集、解析、入库、控制、绘图

页面用仿真设备代替真实硬件。启动采集后,设备持续输出报文; 点击动作按钮可以看到“解析入库、阈值控制、绘图展示”各自对应的 Python 实现与页面状态。

课程触点:第 5 周控制、第 7-8 周图表、第 10-14 周集成
报文
解析
入库
控制
绘图
解析后的记录表
时间温度湿度
通风关闭
加热关闭
加湿关闭
趋势图
当前动作对应的 Python 代码
输出
先启动采集,再选择上方动作。

课前自测

四道题,确认自己已经拿到课前装备

尚未作答