gpt4 book ai didi

python eval vs ast.literal_eval vs JSON解码

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

我将 2 MB 的数据作为字符串转换为字典。输入以 JSON 序列化。

无论如何,我目前正在使用 ast.literal_eval 并且我得到了我想要的字典,但是当我尝试仅运行 eval 时,它似乎运行得更快,并且还返回了相同的结果。

当 eval 工作正常时,是否有任何理由使用 ast 模块或 json 模块?

最佳答案

我不太喜欢 stackoverflow(和其他地方)的这种态度,在没有任何上下文的情况下告诉人们他们正在做的事情是不安全的,他们不应该这样做。也许只是一个一次性的脚本来导入一些数据,那么为什么不选择最快或最方便的方式呢?

然而,在这种情况下,json.loads 不仅更安全,而且速度提高了 4 倍以上(取决于您的数据)。

In [1]: %timeit json.loads(data)
10000 loops, best of 3: 41.6 µs per loop

In [2]: %timeit eval(data)
10000 loops, best of 3: 194 µs per loop

In [3]: %timeit ast.literal_eval(data)
1000 loops, best of 3: 269 µs per loop

如果您认为这是有道理的,json 是一种比 python 更受约束的语言/格式,因此使用优化的解析器进行解析必须更快。

关于python eval vs ast.literal_eval vs JSON解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9949533/

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