最近在做行里的函数编辑器的东西,用的语言是python,其他部门同事在使用的时候在使用我封装的http方法时发现传入的json参数值是bool和null时,会出现:name '' is not defined的错误。我们底层使用的是exec方法运行指定并且封装好的字符串,而当用户传入一个类似{"param1":true}的代码时就会报错,刚开始是想着怎么替换掉,于是推荐使用0和1替换,同事也发现当被调用的服务是spring时,你也可以传入{"param1":"true"},spring会自动转化,但是这不是真正的解决问题,后来一仔细想错误才发现,python把true当成变量了,为什么当变量,那肯定因为它不是关键字,于是才想到python的bool和java的不一样,于是告知,问题解决。
问题很小,语法问题,但是如果我早点认真分析错误,其实一下就知道了,这儿简单记录下。