转换器
Hoppy 在数据柜角落里发现一张很短的货物便签。它不像 JSON 那样已经排成清楚字段,也不像 CSV 那样已经分成整齐行列;它只是几段文本被串在一行里。
但这正是今天要建立的直觉:数据处理常常不是“拿到完美结构直接用”,而是先从普通文本里提取出字段,再把这些字段整理成更好用的结构和展示结果。
转换不是一下跳过去,而是一串看得懂的小动作
从文本走到结构化记录,再从结构化记录走到可展示文本,中间通常会经历几个很小的步骤:先拆开、再取值、再组织。今天我们就把这条转换链走一遍,但保持在很轻的范围内。
camp_note = "camp_name=Moss Shelf | guide=Pip"
parts = camp_note.split(" | ")
camp_name = parts[0].split("=")[1]
guide = parts[1].split("=")[1]
camp_record = {
"camp_name": camp_name,
"guide": guide
}
summary = camp_name + " -> " + guide
print("Camp record:", camp_record)
print("Summary:", summary)
这里示范的是动作链,不是今天 starter 的原题答案。真正想让你看清的是:文本可以先拆成小片段,再取出字段,再整理成 dict,最后还能重组成一行更适合展示的结果。
今天的任务:把便签文本变成记录,再变成展示行
starter 已经帮你读好了 supply_note.txt,并先把整条文本便签放进 supply_note。你要继续往前做三步:拆出字段、组装 supply_record、再做出 summary_line。
starter 已经把 supply_note 用 " | " 拆成了 parts。先观察这些片段长什么样:它们看起来像一小组 key=value。
对每一段再用 "=" 拆一次,并拿到右边的值,得到 item_name、keeper_name、shelf_name。
用这三个值组出 supply_record,再做出一行 summary_line。这就把“文本 -> 结构化记录 -> 可展示文本”串起来了。
今天只做轻量转换:从普通文本提取字段、构造 dict、再做一行展示文本。我们不进入复杂 parser,不讲完整 ETL,也不把正则当主工具。
参考答案点击展开点击收起
with open("supply_note.txt", "r", encoding="utf-8") as file:
supply_note = file.read().strip()
print("Supply note:", supply_note)
parts = supply_note.split(" | ")
item_name = parts[0].split("=")[1]
keeper_name = parts[1].split("=")[1]
shelf_name = parts[2].split("=")[1]
supply_record = {
"item_name": item_name,
"keeper_name": keeper_name,
"shelf_name": shelf_name
}
summary_line = item_name + " -> " + keeper_name + " @ " + shelf_name
print("Supply record:", supply_record)
print("Summary line:", summary_line)高级技巧想更进一步?点击展开点击收起
这节课最重要的感觉是:转换不是魔法般的一次跳跃,而是一串你能看懂的小动作。先拆开文本,再拿出字段,再排成结构,最后按需要重新表达。
下一课会把 Chapter 4 里的几种格式一起摆上桌,做一次轻量 checkpoint,看看你能不能判断哪种格式更适合哪种信息。