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

19 投票
2 回答
1674 浏览
提问于 2025-04-16 21:06

JSON和Python的语法非常相似。所有的JSON对象都能直接转换成Python吗?会不会出错呢?

举个例子

下面是一个有效的JSON对象:

// Valid JSON
{"foo":"bar"}

这个对象会直接转换成一个Python字典,里面有一个键是"foo",值是"bar":

# Python
json_dict = eval('{"foo":"bar"}')

2 个回答

6

这个问题已经有人回答过了,而且答案也被接受了。不过我想提一下,关于 truefalsenull 这些在 Python 中不太适用的问题,可以通过在解析 JSON 之前使用下面的代码来解决:

true = True
false = False
null = None

当然,使用一个 JSON 解析器还是更好的选择。

20

不,特别是truefalsenull这些词并不是Python中的内容,虽然它们在Python中有直接对应的词(分别是TrueFalseNone)。

// Valid JSON
{"sky_is_blue":true}

但是在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

撰写回答