为什么在馈给json.dumps()的Python对象中不能使用true / false / null?
问题内容:
- 我正在尝试解码(我认为这是正确的词)JSON将python的true,false,null转换为True,False,None
-
我知道我需要
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)
我在做什么错/需要做什么?
另外,我来自javascript背景,因此尝试学习约定和术语一直很痛苦。在u之前,u在其他线程的链接中的每个json键之前是什么?
问题答案:
您可以将原始JSON嵌入到代码中(如果您将其嵌入到字符串中)(如果您正在使用良好的做法从磁盘或网络中读取数据,则无论如何都可以将其嵌入):
# similar to what you'd get from raw_json=open('in.json', 'r').read()
raw_json = '''{
'a':'aa',
'b':'bb',
'c':'cc',
'd':true,
'e':false,
'f':null
}'''
python_struct = json.loads(raw_json)
json_again = json.dumps(raw_json)
因为true
,false
并且null
是该字符串的所有内,解析器不会尝试读取它们作为有效的Python,所以json.loads()
能够看到他们,因为他们最初写的。