🐸

转换器

数据与文本工具python-data-tinkerer-27-the-converter
奖励: 135 XP
|

转换器

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

1
先把一条便签拆成更小的片段

starter 已经把 supply_note" | " 拆成了 parts。先观察这些片段长什么样:它们看起来像一小组 key=value

2
从片段里提取真正字段

对每一段再用 "=" 拆一次,并拿到右边的值,得到 item_namekeeper_nameshelf_name

3
先整理成 dict,再整理成展示文本

用这三个值组出 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,看看你能不能判断哪种格式更适合哪种信息。

Loading...
终端输出
Terminal
Ready to run...