【AI产品经理实战】Day 37|拆开 JSON 与 EXE:数据都有格式

| 进度条:学习第 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(对比表)**​

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

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

JavaScript Python 作用
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. 嵌套完整示例(对象套数组、数组套对象):

json 复制代码
{
  "店铺": "老王炒菜",
  "营业": 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 转换函数上手 用 Python json.loads/dumps 各跑一遍嵌套示例

📌 3 行速记

· 做了:主学 JSON(6 种值类型/转换/7 报错坑)+ 次学 EXE(PE 结构/pyinstaller),笔记自查纠错 6 处

· 学会:JSON 是"一套写字规矩";软件本体也是 0/1 数据;MZ 是程序员名字缩写

· 卡住:Resource Hacker 改 exe 资源实操未亲手跑


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

相关推荐
yunni82 小时前
政企AI落地避坑:敏感数据不出域,安全需求优先本地化部署
人工智能·安全
广东帝工2 小时前
如何利用大数据和人工智能技术实现智慧航道
大数据·人工智能
有月牙2 小时前
2026企业AI办公工具选型指南:企业办公AI怎么评估与落地
大数据·人工智能
柯南46682 小时前
【AI工程师精讲】09:LoRA:几十兆的文件,凭什么能改变一个大模型
人工智能·ai编程
198******126342 小时前
Work Agent深度解读:AI长程任务如何重塑办公自动化
人工智能
自养Agent2 小时前
Agent Harness 从用到会造:上下文塞满了,它为什么反而变笨
人工智能
喵叔哟2 小时前
第 2 章 Spec Kit 到底是什么?
人工智能
科创致远2 小时前
2026 ESOP系统选型指南:从轻MES到独立ESOP怎么选
大数据·人工智能·制造·精益工程
Rosanci2 小时前
AI 编程工具该知道什么、能做什么?从仓库上下文到测试执行的权限分层
人工智能·自动化·ai 编程