Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does converting json to dict with eval a good choice?

I am getting a json object from a remote server, and converting it to a python string like this:

a = eval(response)

Is this stupid in any way, or do I have a better option?

like image 472
yasar Avatar asked Sep 02 '11 11:09

yasar


1 Answers

Using eval is not a good way to process JSON:

  1. JSON isn't even valid Python, because of true, false, and null.

  2. eval will execute arbitrary Python code, so you are at the mercy of malicious injection of code.

Use the json module available in the standard library instead:

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

If you're using a version of Python older than 2.6, you'll need to download the module yourself. It's called simplejson and can be downloaded from PyPi.

like image 75
Ned Batchelder Avatar answered Oct 17 '22 14:10

Ned Batchelder