我看到了使用 getattr() 进行一些简单的方法/函数调用的答案。
任意字符串怎么样,例如在这里进行网页解析:
from bs4 import BeautifulSoup
import urllib
f = urllib.urlopen(link) # link comes from database, e.g. 'http://www.example.com'
soup = BeautifulSoup(f)
text = soup.find(True, 'text').get_text() # Now this is hardcoded
工作正常,但是运行来自数据库的解析器字符串怎么样?字符串可以是这样的:
soup.find("div", "layout left").find(id=True).get_text()
或者非常匹配任何东西,取决于网页。
最佳答案
您可以使用eval
来计算存储在字符串中的任意Python表达式。然而,这很危险。黑客或不道德的用户可能会向数据库中插入恶意代码(例如,1000000**1000000
导致 Python 发疯)。
关于python - 如何将任意字符串作为命令运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458695/