继续stackoverflow question。 我有以下数据结构:
data = [
{'site': 'Stackoverflow', 'id': 1},
{'site': 'Superuser', 'id': 2},
{'site': 'Serverfault', 'id': 3}
]
我想在所有'site'键中搜索特定值,并返回该词典的'id'值。例如,搜索“超级用户”应返回2:
>>> print find_id('Superuser')
2
当我尝试使用引用的问题的解决方案时,我收到了一个错误:
>>> if any(d['site'] == 'Superuser' for d in data): print d['Superuser']
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined
>>> if any(d['site'] == 'Superuser' for d in data): print data['Superuser']
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
最狡猾的做法是什么?
答案 0 :(得分:0)
这里没有技巧。只是做:
def find_id(data, name):
for d in data:
if d['site'] == name:
return d['id']