☰
【AI产品经理实战】Day 37|拆开 JSON 与 EXE:数据都有格式
2026/10/14 11:38:39 网站建设 项目流程

| 进度条:学习第 37 天(37/191)|当前完成度:约 30% |

📎今日速览:主学 JSON(6 种值类型 → 对象数组嵌套 → 各语言转换 → 7 个报错坑),次学 EXE(PE 结构 + pyinstaller 打包),外加笔记自查纠错 6 处 ← 先看这段


〇、今日投入 & 产出(量化)

维度内容量化
投入-时间JSON/EXE 视频学习 + 手写笔记 5 页 + 笔记补丁核对约 5 小时
投入-外部输入JSON/EXE 视频教程、手写笔记补丁资料(纠错+补充)2 类
产出-代码/数据6 种值类型梳理、4 个转换函数、7 个报错坑、PE 5 大节1 套笔记
产出-文档/博客本篇 Day 37 学习笔记(含纠错 6 处 + 补丁全量)1 篇

一、今日任务(完成+收获)

1.1 今日任务原文

主学 JSON 分析,次学 EXE 文件形式,并用手写笔记 + 补丁合并出正确版本。

📷 图1:JSON 手写学习笔记(10.11,3 页)+ 今日任务清单

1.2 完成情况

任务项计划实际状态
JSON 基础:来源、与 XML 区别、应用场景理清术语笔记 3 页,术语全理清✅ 完成
JSON 语法:6 种值类型 + 对象/数组嵌套掌握掌握,含嵌套完整示例✅ 完成
EXE 文件:PE 结构 + pyinstaller 打包掌握掌握,打包命令已验证拼写✅ 完成
笔记自查纠错对照资料纠出并更正 6 处✅ 完成

1.3 今日收获 & 学到的知识点

① JSON 是什么:一种轻量级文本数据格式,来源于 JavaScript 的对象语法,但实际上独立于任何语言,本质就是一条字符串。

  • 大白话:JSON 不是框架也不是工具,只是"一套写字规矩",能简单直观地把树状结构数据装进一条字符串里。

② 6 种值类型:字符串(必须双引号)、数字、布尔、null 这 4 种常规类型 + 对象{}、数组[]这 2 种可内嵌类型;关键必须是字符串,最后一项后面不能加逗号,值类型无需统一。

③ JSON vs XML(对比表)​

对比项JSONXML
对谁友好对人友好对机器友好
适合场景数据量不大、结构不复杂(接口参数、返回结果、配置文件、Elastic Search)数据量大、结构复杂
互相转换大部分情况可互相转换大部分情况可互相转换

④ Python 端转换方法(对照 JavaScript)​

JavaScriptPython作用
JSON.parse(text)json.loads(text)字符串 → 对象(s=字符串)
JSON.stringify(obj)json.dumps(obj)对象 → 字符串(s=字符串)
(无)json.load(f)读 .json 文件并解析
(无)json.dump(obj, f)把对象写入 .json 文件
  • 记忆法:Python 里带 s 的是处理【字符串 string】,不带 s 的是处理【文件 file】。

⑤ JSON 常见报错坑(解析 API 返回时 90% 的错误来源)​

  1. 键和字符串值必须用双引号,单引号非法:{'a':1}❌ →{"a":1}✅

  2. JSON 不支持注释,配置文件想写注释要改用 YAML / TOML

  3. 最后一个键值对后面不能有逗号:{"a":1,}❌

  4. 字符串内的双引号要转义:"他说 \"你好\""✅

  5. 数字不能有前导零:01❌;NaN/Infinity不是标准 JSON

  6. 空值是小写null(Python 里对应 None),True/False在 JSON 里必须小写

  7. 嵌套完整示例(对象套数组、数组套对象):

{"店铺":"老王炒菜","营业":true,"评分":4.8,"菜单":[{"菜名":"番茄炒蛋","价格":12,"辣度":null},{"菜名":"辣椒炒肉","价格":28,"辣度":"高"}]}

⑥ EXE / PE 文件:exe 和 dll 都是PE(Portable Executable,可移植的可执行文件),由DOS 头、PE 头、节表、节组成;常见节:.text指令代码、.data初始化数据、.idata导入表、.edata导出表、.rsrc资源(图标/光标/位图)。

  • 大白话:所有文件本质都是一堆 0 和 1,由不同软件解释才有了"意义"——软件自己也是个 exe,也依然是数据。

⑦ pyinstaller 打包:pip install pyinstaller安装 →pyinstaller -F 文件名.py打包 → dist 文件夹里生成 exe。常用参数卡:

  • -F打成单个 exe 文件(最常用)

  • -w运行时不弹黑色控制台窗口(做界面程序时用)

  • -i 图标.ico自定义程序图标

  • -D打成文件夹(默认模式,启动更快)

  • 注意:打包后的 exe 可能被杀毒软件误报,属正常现象。

⑧ 从源码到 exe 四步流程(一条线背下来):

源代码(.c)→预处理/编译→汇编(asm/obj)→链接器(Linker)→可执行文件(exe)

  • 冷知识:文件头"MZ"是程序员Mark Zbikowski的名字缩写,记人名更好记。

  • 验证小实验:用十六进制编辑器打开任意 exe,前两个字母应是"MZ",往下翻能看到"This program cannot be run in DOS mode"。

  • 现代 Windows 是NT 内核,不是 DOS;exe 开头那段只是残留的 DOS 兼容程序(DOS stub),作用是万一在 DOS 下运行时打印提示语,属于历史遗留。

📷 图2:EXE 打包实操(10.12)+ PE 结构笔记截图


二、卡点分两类(已解决 / 未解决)

✅ 今日已解决

2.1 笔记自查纠错 6 处怎么解开的
  • 什么时候出现:手写笔记混入 6 个错,是记笔记时凭印象写、没对照权威资料留下的。

  • 我的理解:把"近似概念"当成了真——比如 HTML/XML 谁的爹是谁、Java 对 JSON 到底是不是天生支持。

  • 解决办法:对照资料逐条核实,6 处全部改为正确:

    1. HTML不是基于 XML 的。HTML 和 XML 是兄弟关系(都源自 SGML),基于 XML 的是 XHTML。

    2. Java 对 JSON 是【非原生】支持,需引入 Gson / FastJson 等库。

    3. 安装命令拼写:pip install pyinstaller

    4. 打包命令:pyinstaller -F 文件名.py

    5. PE 资源节名是.rsrc(不是.ysrc)。

    6. 现代 Windows 是NT 内核,不是 DOS。exe 开头只是残留一段 DOS 兼容程序(DOS stub),作用是万一在 DOS 下运行时打印提示语,属于历史遗留。

  • ✅验证结果:逐条核对完毕,6 处已更正,笔记补丁已并入本篇,不再有错写法流入博客。

📷 图3:纠错 6 处对照清单(笔记补丁原文)

2.2 EXE 从"黑盒"到"也是数据"的认知怎么解开的
  • 什么时候出现:学 PE 结构前,一直以为 exe 是"神秘程序",碰不得。

  • 我的理解:拆开看,exe 只是 DOS 头 + PE 头 + 节表 + 节,和 txt 一样是 0/1 序列。

  • 解决办法:用"所有文件本质都是 0 和 1,区别只在谁来解释"这句话重新框定。

  • ✅验证结果:现在能用自己的话讲清"软件本体也是数据",不再把它当黑盒。

❓ 还没搞懂(带到明天)

没吃透的点卡在哪准备什么时候啃
Resource Hacker 修改 exe 资源实操删除资源报错后"替换相同格式资源"的具体操作还没亲手跑过抽空完成

💡 今天没踩硬坑,这条是"最拿不准、想验证但还没验证"的点。


三、小结和下一步计划

3.1 今日小结

  • JSON 教会我"数据有格式"——一套写字规矩就能把树状结构装进一条字符串

  • EXE 教会我"软件本体也是数据"——拆开看全是 0 和 1 加一个文件头。

  • 两课合一句:底层全是数据,区别只在谁来解释。

3.2 ✨ 高光时刻 / 亮点

从自己的手写笔记里纠出 6 处错误——最有意思的是"MZ"文件头竟是程序员 Mark Zbikowski 的名字缩写,而"Windows 是 DOS 系统"这个流传已久的说法被证实是错的(NT 内核,DOS 程序只是残留)。
为什么算高光:第一次不靠别人提醒,自己把"以为对的常识"推翻重来,笔记可信度直线上升。

3.3 下一步计划

任务验收标准
补 Resource Hacker 实操亲手删换一次 exe 资源,跑通不报错
JSON 转换函数上手用 Pythonjson.loads/dumps各跑一遍嵌套示例

📌3 行速记
· 做了:主学 JSON(6 种值类型/转换/7 报错坑)+ 次学 EXE(PE 结构/pyinstaller),笔记自查纠错 6 处
· 学会:JSON 是"一套写字规矩";软件本体也是 0/1 数据;MZ 是程序员名字缩写
· 卡住:Resource Hacker 改 exe 资源实操未亲手跑


我是卿卿,一个正在自学 AI 知识的小白,一个转行学 AI 的小白。这是「AI产品经理191天通关计划」的 Day 37,目标很简单:每天留下一份能回头看懂的笔记。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询