mirror of
https://github.com/magnum-opus-tender-hack/backend.git
synced 2024-11-30 21:13:45 +03:00
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from typing import List, Dict
|
|
|
|
|
|
def group(data: List[Dict], search_fields_d: List[Dict]) -> List[Dict]:
|
|
search_fields = []
|
|
search_fields_dict = []
|
|
for x in search_fields_d:
|
|
dat = dict(x)
|
|
search_fields.append(dat["value"].lower())
|
|
search_fields_dict.append(dat)
|
|
re = {}
|
|
n = 0
|
|
for el in data:
|
|
for field in search_fields:
|
|
if field in el["name"].lower():
|
|
if field in re:
|
|
re[field].append((n, 0, el["name"].lower().index(field)))
|
|
else:
|
|
re[field] = []
|
|
re[field].append(
|
|
[x["type"] for x in search_fields_dict if x["value"].lower() == field][
|
|
0
|
|
]
|
|
)
|
|
re[field].append((n, 0, el["name"].lower().index(field)))
|
|
m = 1
|
|
for char in el["characteristic"]:
|
|
if field in str(char["value"]).lower():
|
|
if field in re:
|
|
re[field].append(
|
|
(n, m, str(char["value"]).lower().index(field))
|
|
)
|
|
else:
|
|
re[field] = []
|
|
re[field].append(
|
|
[
|
|
x["type"]
|
|
for x in search_fields_dict
|
|
if x["value"].lower() == field
|
|
][0]
|
|
)
|
|
re[field].append(
|
|
(n, m, str(char["value"]).lower().index(field))
|
|
)
|
|
|
|
m += 1
|
|
n += 1
|
|
data += [re]
|
|
return data
|