📝 Python 修炼日记:数据重构(Restructuring)
🗓️ 日期:2026-03-23
🎯 今日目标:学会把复杂的“大字典”简化成只包含核心信息的“小字典”,让数据变漂亮!
📖 核心概念
在真实的项目里(比如你从 Logseq 导出的数据),一个字典可能包含几十个键(key),比如:创建时间、修改时间、作者、字数、路径、ID……
但很多时候,我们只需要其中一两个关键信息。
数据重构就是:
1️⃣ 遍历旧列表。
2️⃣ 每次取出一个大字典。
3️⃣ 亲手捏一个新字典,只把我要的“姓名”和“分数”放进去。
4️⃣ 把这个“小而美”的新字典存进新列表。
用一句话总结:
重构 = 提取精华 + 重新打包
📊 知识汇总表
重构的核心动作
| | |
|---|
| 1. 提取 | name = item["name"] | |
| 2. 打包 | new_item = {"简名": name} | |
| 3. 转换 | score = item["score"] * 10 | 在打包的过程中,顺便把数据算一下(比如换算单位)。 |
| 4. 收集 | new_list.append(new_item) | |
⚙️ 逻辑与流程
下面是“数据重构”的执行过程:
💻 实战演练
假设你有一堆 Logseq 笔记数据,信息太乱了,我们只想重构成“标题”和“是否为长文”的精简格式。
# 1. 原始数据:信息很多很杂
raw_notes = [
{"title": "Python字典", "date": "2026-03-19", "words": 1500, "id": "001"},
{"title": "买菜清单", "date": "2026-03-20", "words": 50, "id": "002"},
{"title": "Logseq配置", "date": "2026-03-21", "words": 800, "id": "003"}
]
# 2. 开始重构
clean_notes = []
for note in raw_notes:
# --- 核心步骤:捏一个新字典 ---
# 我们只要标题,并且把字数转换成“长文”或“短文”的状态
# 提取并加工
short_title = note["title"]
is_long = "是" if note["words"] > 1000 else "否"
# 打包成新结构
new_packet = {
"笔记名称": short_title,
"字数达标": is_long
}
# 存入新列表
clean_notes.append(new_packet)
# 3. 打印看结果
print("重构后的精简数据:")
for item in clean_notes:
print(item)
# 运行结果:
# {'笔记名称': 'Python字典', '字数达标': '是'}
# {'笔记名称': '买菜清单', '字数达标': '否'}
# {'笔记名称': 'Logseq配置', '字数达标': '否'}
💡 今日感悟
今天最大的收获是:数据的主动权在你自己手里。
你不必接受原始数据的臃肿格式,通过 new_packet = {},你可以随心所欲地定义数据的长相。
⚠️ 避坑指南:
重构时最容易犯的错是:new_packet["title"] = note["title"]。
如果你忘记先创建一个空字典new_packet = {},Python 就不知道你想把东西往哪儿放。
📌 如果用一句话总结今天:
筛选是决定“谁能留下”,重构是决定“留下的长什么样”。