为什么我不能在传递给 json.dumps() 的 Python 对象中使用 true/false/null?

Jac*_*nna 2 python json

  • 我正在尝试解码(我认为这是正确的词)JSON 将 true、false、null 转换为 True、False、None for python
  • 我知道我需要json图书馆

  • 我遵循了该线程的答案,但它没有让我得到任何结果。

  • 我仍然收到同样的错误: NameError: name 'true' is not defined

...

import json

raw_json = {
'a':'aa',
'b':'bb',
'c':'cc',
'd':true,
'e':false,
'f':null
}

json_dump = json.dumps(raw_json)
json_load = json.loads(json_dump)
Run Code Online (Sandbox Code Playgroud)

我做错了什么/需要做什么?

另外,我有 javascript 背景,所以学习约定和术语很痛苦。在“d2”之后的另一个线程的链接中,每个 json 键前面的“u”是什么?

Joh*_*ich 5

在 JSON 变量中raw_json,您需要将True和大写False。在 Python 中,布尔值大写表示 true 和 false。当您将其序列化为 JSON 时,它们将变为小写。另外,NonePython 相当于null.

当您执行 JSON 转储时,您将接收一个 Python 字典(必须是有效的 Python)并输出一个遵循 JSON 标准的字符串。该转换直观地将大写的 True、False 和 None 更改为其 JSON 等效项 true、false 和 null。

u要回答为什么字符串上有s,那就是指字符串是Unicode字符串。