JSON语法是Python语法的严格子集吗?
JSON和Python的语法非常相似。所有的JSON对象都能直接转换成Python吗?会不会出错呢?
举个例子
下面是一个有效的JSON对象:
// Valid JSON
{"foo":"bar"}
这个对象会直接转换成一个Python字典,里面有一个键是"foo",值是"bar":
# Python
json_dict = eval('{"foo":"bar"}')
2 个回答
6
这个问题已经有人回答过了,而且答案也被接受了。不过我想提一下,关于 true
、false
和 null
这些在 Python 中不太适用的问题,可以通过在解析 JSON 之前使用下面的代码来解决:
true = True
false = False
null = None
当然,使用一个 JSON 解析器还是更好的选择。
20
不,特别是true
、false
和null
这些词并不是Python中的内容,虽然它们在Python中有直接对应的词(分别是True
、False
和None
)。
// 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