import ast
import pprint
inpt = { 'data[PARAMS][CHAT_ENTITY_DATA_1]' : '...' ,
'data[PARAMS][CHAT_ENTITY_DATA_2]' : '...' ,
'data[PARAMS][CHAT_ENTITY_DATA_3]' : '...' }
results = {'data':{'PARAMS':{}}}
for k, v in inpt.items():
# print(k,v)
# корячим входную строку как нам нужно:
r_str = "{'" + k.replace("[","':{'").replace("]","") + "':'" + v + "'}}}"
print('строка ', r_str)
print(type(r_str))
# с помощью eval превращаем строку в словарь:
r = ast.literal_eval(r_str)
print('словарь ', r_str)
print(type(r))
results['data']['PARAMS'].update(r['data']['PARAMS'])
print('\nрезультат')
pprint.pprint( results)
from deepdiff import DeepDiff
ddiff = DeepDiff(a, b, ignore_order=True)
print(ddiff)