将json转换成dval与eval是一个很好的选择吗?

时间:2011-09-02 11:43:07

标签: python json dictionary eval

我从远程服务器获取一个json对象,并将其转换为这样的python字符串:

a = eval(response)

这是愚蠢的,还是我有更好的选择?

2 个答案:

答案 0 :(得分:15)

使用eval不是处理JSON的好方法:

  1. 由于truefalsenull,JSON甚至不是有效的Python。

  2. eval将执行任意Python代码,因此您可能会恶意注入代码。

  3. 使用标准库中提供的json模块:

    import json
    data = json.loads("[1, 2, 3]")
    

    如果您使用的是2.6以上版本的Python,则需要自行下载该模块。它被称为simplejson,可以是downloaded from PyPi

答案 1 :(得分:2)

是的,非常。改为使用json解码器:

>>> from simplejson import loads
>>> loads(response)