JSON语法是Python语法的严格子集吗?

pok*_*tad 16 javascript python syntax json

JSON与Python语法非常相似.所有JSON对象都可以直接转换为Python而不会出错吗?

以下是有效的JSON对象:

// Valid JSON
{"foo":"bar"}
Run Code Online (Sandbox Code Playgroud)

该对象将直接转换为带有键"foo"和值"bar"的Python字典:

# Python
json_dict = eval('{"foo":"bar"}')
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 19

号特别是,true,false,和null不Python中,尽管它们确实具有直接等同物在Python( ,True,FalseNone分别地).

// Valid JSON
{"sky_is_blue":true}
Run Code Online (Sandbox Code Playgroud)

但是在Python中使用时......

# Python
>>> json_dict = eval('{"sky_is_blue":true}')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'true' is not defined
Run Code Online (Sandbox Code Playgroud)


Jas*_*ijn 5

这个问题已经回答了(和答案接受)了,但我想指出的问题true,falsenull没有被Python可以通过使用JSON评估之前,下面的代码来克服:

true = True
false = False
null = None
Run Code Online (Sandbox Code Playgroud)

当然,JSON解析器仍然更好.

  • 正则表达式?现在你有两个问题!;) (6认同)