Как преобразовать строку запроса логических операторов в словарь в Python 3

У меня есть строка запроса, и мне нужно преобразовать объект json, как показано ниже

((blue AND green) OR (brown AND green) OR green) AND NOT red

{
  "filter": {
"operator": "and",
"filters": [{
    "operator": "or",
    "filters": [{
        "operator": "and",
        "filters": [{
            "means": "contains",
            "value": "blue"
          },
          {
            "means": "contains",
            "value": "green"
          }
        ]
      },
      {
        "operator": "and",
        "filters": [{
            "means": "contains",
            "value": "brown"
          },
          {
            "means": "contains",
            "value": "green"
          }
        ]
      },
      {
        "means": "contains",
        "value": "green"
      }
    ]
  },
  {
    "means": "not contains",
    "value": "red"
  }
]
  }
}

можешь мне помочь? как преобразовать запрос в тот же dict, мне нужны хорошие решения для сопоставлений

В зависимости от желаемого синтаксиса это будет примерно так: {'field': {'$ and': [{'$ or': [{'$ and': ['СИНИЙ', 'ЗЕЛЕНЫЙ']}, { '$ and': ['КОРИЧНЕВЫЙ', 'ЗЕЛЕНЫЙ']}, 'ЗЕЛЕНЫЙ']}, {'$ ne': 'красный'}]}} для mongodb

Steven Fines 26.03.2018 22:57

@ PyDroid - Вы можете обновить свой вопрос, чтобы было понятно, о чем вы спрашиваете.

Steven Fines 26.03.2018 23:10

любая помощь от кого-нибудь?

Droid 27.03.2018 18:41

что вы ожидаете, что словарь будет искать что-то вроде этого: ((blue AND green) OR NOT (brown AND red) , другими словами, были ли эти выражения каким-то образом упрощены с использованием законов де Моргана? en.wikipedia.org/wiki/De_Morgan's_laws

AntiMatterDynamite 30.03.2018 02:25

@AntiMatterDynamite может мне помочь, покажите мне простой пример

Droid 30.03.2018 13:19

@AntiMatterDynamite, пожалуйста, можешь мне помочь?

Droid 30.03.2018 13:47
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
6
85
0

Другие вопросы по теме