gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:22:21 25 4
gpt4 key购买 nike

从表面上看,python 似乎 native 使用 json。我能想到的唯一异常(exception)是json可以存储js函数。

这是我的问题:我需要通过终端将json传递给python文件。
为什么我应该或不应该只使用 eval()?

最佳答案

不,Python 本身不使用 JSON。你认为 JSON 的东西实际上是一个字典,是 Python 中多种对象的一个。在 Python 中构建字典的(简单)语法非常接近 JSON,但它是偶然的。您可以通过这种方式创建字典:

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

你也可以这样创建:

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

那么,有哪些语法如此相似?嗯,JSON 语法是受数组的 JavaScript 语法启发的。 JavaScript 语法可能也启发了 Python 字典的编写方式,反之亦然。但永远不要假设这三种语法——JavaScript、JSON 和 Python 字典——是相同的或可互换的。

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

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

用它来解析你的 JSON。

祝你好运!

关于javascript - python对象和json对象有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com