Eval (was Re: Question about using python as a scripting language)

Brendon Towle btowle at carnegielearning.com
Wed Aug 9 10:23:49 EDT 2006


Slawomir Nowaczyk noted:

> #> Heck, whenever *is* it OK to use eval() then?
>
> eval is like optimisation. There are two rules:
>
> Rule 1: Do not use it.
> Rule 2 (for experts only): Do not use it (yet).

So, that brings up a question I have. I have some code that goes out  
to a website, grabs stock data, and sends out some reports based on  
the data.

Turns out that the website in question stores its data in the format  
of a Python list (http://quotes.nasdaq.com/quote.dll?page=nasdaq100,  
search the source for "var table_body"). So, the part of my code that  
extracts the data looks something like this:

     START_MARKER = 'var table_body = '
     END_MARKER = '];'

def extractStockData(data):
     pos1 = data.find(START_MARKER)
     pos2 = data.find(END_MARKER, pos1)
     return eval(data[pos1+len(START_MARKER):END_MARKER])

(I may have an off-by-one error in there somewhere -- this is from  
memory, and the code actually works.)

My question is: what's the safe way to do this?

B.

-- 
Brendon Towle, PhD
Cognitive Scientist
+1-412-690-2442x127
Carnegie Learning, Inc.
The Cognitive Tutor Company ®
Helping over 375,000 students in 1000 school districts succeed in math.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20060809/bcb0c98d/attachment.html>


More information about the Python-list mailing list