Есть ли в rethinkdb встроенный механизм для преобразования массива объектов в значение ключа?

я хочу трансформировать

[{"id": 1, "name": "some_name_1", "alias": "alias1"}, {"id": 2, "name": "some_name_2", alias: "alias2"}, {"id": 3, "name": "some_name_3", "alias": "alias3"}] 

в

{"1": {"id": 1, "name": "some_name_1", "alias": "alias1"}, "2": {"id": 2, "name": "some_name_2", alias: "alias2"}, "3": {"id": 3, "name": "some_name_3", "alias": "alias3"}}

person David Mnatsakanyan    schedule 09.07.2018    source источник
comment
Должен ли ключ словаря быть идентификатором или позицией в списке?   -  person avigil    schedule 09.07.2018
comment
это должен быть идентификатор, понимание списка может быть решением, но мне нужна встроенная функция, похожая на coerce_to   -  person David Mnatsakanyan    schedule 10.07.2018
comment
@DavidMnatsakanyan Пытаюсь понять больше. Какая-то конкретная причина, по которой вас не устраивает Понимание списков и вы ищете что-то другое?   -  person dhilmathy    schedule 10.07.2018
comment
Просто не нужно перебирать огромный список со стороны клиента.   -  person David Mnatsakanyan    schedule 10.07.2018


Ответы (1)


Для этого можно использовать Понимание списка.

Код:

dict = [{"id": 1, "name": "some_name_1", "alias": "alias1"}, {"id": 2, "name": "some_name_2", "alias": "alias2"}, {"id": 3, "name": "some_name_3", "alias": "alias3"}]
print (*[{str(i+1):x} for i,x in enumerate(dict)])

EDIT: Если вместо индекса должен отображаться ключ словаря,

print (*[{x["id"]:x} for x in dict])

Вывод:

{'1': {'id': 1, 'name': 'some_name_1', 'alias': 'alias1'}} {'2': {'id': 2, 'name': 'some_name_2', 'alias': 'alias2'}} {'3': {'id': 3, 'name': 'some_name_3', 'alias': 'alias3'}}
person dhilmathy    schedule 09.07.2018
comment
enumerate не нужен, так как вы должны использовать x['id'] в качестве ключа - person avigil; 10.07.2018