我需要从json中获取==
来比较python文件中的s1==s2
而不是直接分配比较运算符,我需要从json中获取
def something():
s1=“Search_string”
s2=“searchstring”
if s1 == s2:
print("Success")
else:
print(“Error”)
json:
{
"Mapping":
{
"Operator": "=="
}
}
答案 0 :(得分:0)
def something(s1, s2, op="=="):
# if using an older python version which doesn't supports f-string
# use something like `format` to put the `op` variable in the string.
if eval(compile(f"bool(s1 {op} s2)", "<string>", "eval")):
print("Success")
else:
print("Error")
s1 = "Search_string"
s2 = "searchstring"
op = "==" # load the actual string from your json, this is just for demo
something(s1, s2, op) # prints Error
something(s1, s2, "!=") # prints Success
something(s1, s1, op) # prints Success
从json文件中加载运算符字符串,希望您知道该怎么做。
有关eval
和compile
的更多信息,请参见this。答案非常透彻,我无意在这里解释它们。
警告:如果您无法控制来自json文件的内容,请注意类似这样的代码可能很危险。只需编辑json文件,有人就可以在您的python脚本中插入任何随机代码。