python对象和json对象有什么区别?

2024-04-16 23:05:45 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
2条回答

不,Python本机不使用JSON。事实上,您认为JSON是一个字典,是Python中多种对象中的一个。用Python构建字典的(简单的)语法非常接近JSON,但它是附带的。正如您可以这样创建字典一样:

a = {'a' : 2, 'b' : 3}

您也可以这样创建它:

a = dict([('a', 2), ('b', 3)]);

那么,什么语法如此相似呢?好吧,JSON语法受数组的JavaScript语法的启发。JavaScript语法很可能也启发了Python字典的编写方式,反之亦然。但决不要假设这三种语法(JavaScript、JSON和Python dict)是相同的或可互换的。

既然如此,为什么不在字典中使用eval()来转换JSON?首先,因为eval()可以在Python中执行任何操作,例如退出程序、删除文件、更改某些内部数据等。因此,通过使用eval(),您可能会使自己容易受到code injection的攻击,这取决于您如何使用它。另外,使用eval()将JSON转换为dict时,假设两者的语法是相同的——这不一定是真的;即使语法是相同的,将来也不可能是这样。最后,还有一种更好、更实用的方法来解析JSON:thejson模块:

>>> import json
>>> json.loads('{"a":1}')
{'a': 1}

使用它来解析JSON。

祝你好运!

JSON本身没有对象,不能存储JavaScript函数。它的语法看起来可能类似于JavaScript文本,但是一直这样使用它只会带来痛苦。

而且不需要使用eval();JavaScript和Python都有随时可用的JSON解析器和序列化器。

相关问题 更多 >