how to convert list of dict to dict

With python 3.3 and above, you can use ChainMap

A ChainMap groups multiple dicts or other mappings together to create a single, updateable view. If no maps are specified, a single empty dictionary is provided so that a new chain always has at least one mapping.

from collections import ChainMap

data = dict(ChainMap(*data))

A possible solution using names as the new keys:

new_dict = {}
for item in data:
   name = item['name']
   new_dict[name] = item

With python 3.x you can also use dict comprehensions for the same approach in a more nice way:

new_dict = {item['name']:item for item in data}

As suggested in a comment by Paul McGuire, if you don't want the name in the inner dict, you can do:

new_dict = {}
for item in data:
   name = item.pop('name')
   new_dict[name] = item