python把字符串转“xxxx=yyy”换为xxxx=yyy的一个带等号的传参数的表达式

在做django的数据查询时,对于model.objects.filter(xxx__gte=para)的括号里的部分我想通过用字符串来转换成这个表达式,因为查询的参数很... 在做django的数据查询时,对于model.objects.filter(xxx__gte=para)的括号里的部分我想通过用字符串来转换成这个表达式,因为查询的参数很多,如果一个一个处理太复杂了 展开
 我来答
百度网友5311d79
2014-12-04 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3235万
展开全部
这样貌似行不通。
等号左边必须得是关键字,而不能是一个表达式,必须写确定的参数名称。
等号右边倒无所谓你怎么折腾。

建议确定关键字顺序,然后只要从字符串中相应地依次解析出等号右边的内容就可以了。
追问
已经找到解决办法了,exec "model.objects.filter(%s)"%("xxx__gte=para"),谢谢了
追答
def f(name, age):
    print name, age

arg1 = "name=xiaoming"
arg2 = "age=21"
exec "f(%s, %s)" % (arg1, arg2)

这这样不行,报错“name 'xiaoming' is not defined”

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式