JSON
JSON 是文本。字典在程序里保存名称和值,但它还不是 JSON。dumps 会把字典变成一行文本。这一页不会打开文件,也不会构造路径。
import json
lamp = {"color": "blue", "watts": 7}
text = json.dumps(lamp)
print(text)
屏幕上显示 {"color": "blue", "watts": 7}。color 和 blue 都在双引号里。watts 是数字,所以 7 没有引号。冒号后面的空格和逗号后面的空格,也都是这段文本的一部分。text 是字符串。没有创建任何文件。这个程序里没有 open,也没有 Path。
import json
text = '{"color": "blue", "watts": 7}'
lamp = json.loads(text)
print(lamp["color"])
print(lamp["watts"])
屏幕上先显示 blue,再显示 7。loads 读取 JSON 文本,把字典重新构造出来。lamp["color"] 的值是单词 blue,不带引号。lamp["watts"] 是数字 7,不是单词 7。这里没有读取任何文件,文本本来就放在变量里。
📊 dumps 和 loads
| 调用 | 起点 | 得到 |
|---|---|---|
| json.dumps | 一个字典 | 一行 JSON 文本,不会写入文件 |
| json.loads | JSON 文本 | 一个字典,不会读取文件 |
如果文本不是合法的 JSON,loads 会停住,这次停住的名字是 JSONDecodeError。{color: blue} 不是 JSON,因为名称和 blue 都没有双引号。这一行不在本页的程序里。不会用 None 代替,程序也不会继续往下运行。
下一页是 CSV 表格。这一页只做两件事:字典变成文本,文本变回字典。
先变文本,再变回字典
dumps 显示 {"color": "blue", "watts": 7}。接着 loads 显示 blue 和 7。7 是数字。写错的那一行会停在 JSONDecodeError。没有文件被写入,也没有文件被读取。下一页是 CSV 表格。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部