I have a list of dicts:
list = [{\'id\':\'1234\',\'name\':\'Jason\'},
{\'id\':\'2345\',\'name\':\'Tom\'},
{\'id\':\'3456\',\'name\':\'Art\'}]
It won't be efficient, as you need to walk the list checking every item in it (O(n)). If you want efficiency, you can use dict of dicts. On the question, here's one possible way to find it (though, if you want to stick to this data structure, it's actually more efficient to use a generator as Brent Newey has written in the comments; see also tokland's answer):
>>> L = [{'id':'1234','name':'Jason'},
... {'id':'2345','name':'Tom'},
... {'id':'3456','name':'Art'}]
>>> [i for i,_ in enumerate(L) if _['name'] == 'Tom'][0]
1