Создайте динамику c где на основе массива условий - PullRequest
0 голосов
/ 17 июня 2020

Новичок в python и работаю над запросом.

Хотите создать динамический c с условиями

У меня есть:

"attributes": [{
      "code": "grp1",
      "values": ['D','E','F']
   },
   {
      "code": "grp2",
      "values": ['A','B','C']
   }
]

Попытка создать условия, которые выглядят так:

WHERE grp1 IN ('D','E','F') AND grp2 IN ('A','B','C')

Мы очень ценим любые предложения о том, как этого добиться

1 Ответ

1 голос
/ 18 июня 2020

Вы можете использовать библиотеку json в python для чтения файла и обработки его, как если бы это был python dict, как в примере ниже.

Надеюсь на это помогает :)

import json

with open('data.json') as json_file:
    data = json.load(json_file)
    query = "WHERE "
    i = 0
    l = len(data["attributes"])
    for sub_dict in data["attributes"]:
        i += 1
        for k, v in sub_dict .items():
            if(k == "code"):
                query += str(v)
            elif (k == "values" and i < l):
                query += " IN " + str(v) + " AND "
            elif (k == "values" and i == l):
                query += " IN " + str(v)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...