解析 Python 中的逻辑 JSON 数据
Parse logical JSON data in Python
我想知道是否存在一些库来解析包含逻辑运算符的 JSON 以将其转换为平面查询字符串。
假设我得到的输入是:
{
"Children":[
{
"ID":1,
},
{
"ID":2,
},
{
"Children":[
{
"ID":3,
},
{
"ID":4,
}
],
"Type":"Or"
}
],
"Type":"And"
}
我想把它简单地转换成:
(3 Or 4) AND 1 And 2
在 Python 中你会怎么做?
这取决于您的确切期望;特别是,如果您不介意多余的括号,这个问题就容易多了。
这是一个错误检查不充分的简单递归函数(即,如果 JSON 不完全符合预期,它可能会引发异常):
def json_to_formula(j):
if 'Children' in j:
return '(' + f" {j['Type']} ".join(map(json_to_formula,
j['Children'])) + ')'
else:
return str(j['ID'])
我想知道是否存在一些库来解析包含逻辑运算符的 JSON 以将其转换为平面查询字符串。
假设我得到的输入是:
{
"Children":[
{
"ID":1,
},
{
"ID":2,
},
{
"Children":[
{
"ID":3,
},
{
"ID":4,
}
],
"Type":"Or"
}
],
"Type":"And"
}
我想把它简单地转换成:
(3 Or 4) AND 1 And 2
在 Python 中你会怎么做?
这取决于您的确切期望;特别是,如果您不介意多余的括号,这个问题就容易多了。
这是一个错误检查不充分的简单递归函数(即,如果 JSON 不完全符合预期,它可能会引发异常):
def json_to_formula(j):
if 'Children' in j:
return '(' + f" {j['Type']} ".join(map(json_to_formula,
j['Children'])) + ')'
else:
return str(j['ID'])