🐸

宝物清单

数据与文本工具python-data-tinkerer-24-the-treasure-list
奖励: 130 XP
|

宝物清单

Hoppy 把几样刚找到的宝物和线索摆在柜台上:箱子标签是一张纸,守柜人的名字写在角落里,线索词压在小石头下,几件宝物名字又散在另一边。

如果这些信息一直零零散散地放着,别人就很难一眼看懂。所以今天我们要往前迈一步:不只是读结构化记录,也要主动把零散信息整理成一份 JSON 风格的结果。

JSON 风格结果,通常就是用 dict 和 list 把信息排整齐

当你在 Python 里用 dict 放字段、用 list 放一组项目时,打印出来的结果常常已经很像 JSON 记录了。今天的重点不是写文件,而是先学会把信息整理成这种清楚的形状。

camp_name = "Moss Shelf"
token_names = ["bell", "rope"]

camp_record = {
  "camp_name": camp_name,
  "tokens": token_names
}

print("Camp record:", camp_record)

这里没有把结果写进文件,也没有讲序列化。我们只是先把“几块零散信息”整理成“一份有字段、有列表的记录”。这就是今天真正要练的动作。

今天的任务:把散开的宝物信息收成一份清楚的记录

starter 已经给好了 chest_labelkeeper_nameclue_wordtreasure_names。你要把它们组织进一个新的 treasure_record 里。

1
先看哪些信息还是散开的

运行 starter,先看看现在这些值是怎样分散地放在不同变量里的。

2
用清楚字段组装 treasure_record

treasure_record 设成一个 dict,并使用这些键:"chest_label""keeper_name""clue_word""treasures"

3
对照“散开的值”和“结构化记录”

运行后,你会先看到原本分散的信息,再看到一份更整齐的记录。这个动作就是从“零散数据”走向“JSON 风格输出”的第一步。

边界先收住

今天只练“构造 JSON 风格结果”这一步:用 dictlist 把字段排整齐。我们不要求真正写入文件,不讲 json.dumps(),也不进入接口返回格式。

参考答案
点击展开
参考答案:
chest_label = "Fernlight Chest"
keeper_name = "Mira"
clue_word = "silver fern"
treasure_names = ["amber key", "moon coin", "moss compass"]

print("Loose pieces:")
print("Chest label:", chest_label)
print("Keeper name:", keeper_name)
print("Clue word:", clue_word)
print("Treasure names:", treasure_names)

treasure_record = {
  "chest_label": chest_label,
  "keeper_name": keeper_name,
  "clue_word": clue_word,
  "treasures": treasure_names
}

print("Treasure record:", treasure_record)
高级技巧
想更进一步?点击展开

今天最重要的直觉是:结构化结果不一定非得“从外面拿来”,你也可以自己把信息重新排好。只要字段名清楚、列表放得合适,结果就已经很像一份能继续传递和使用的记录。

下一课,Hoppy 会把视线从 JSON 再拉到另一种常见记录形状:按行和列组织起来的 CSV 表格。

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