解析 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'])