所以我有一个json数据数组,如下所示:
[{
"first_name": "Joe",
"last_name": "Smith",
"numbers": [1,2,3,4,5]
}, {
"first_name": "Jane",
"last_name": "Doe",
"numbers": [6,4,1,35,2]
}, {
"first_name": "Mike",
"last_name": "Everyman",
"numbers": [8,5,3,2,4,5]
}]
如何只选择last_name = Doe的数组项?我试图将我在ruby中编写的一些代码转换为python,因为lambda不支持ruby :( 我的ruby代码看起来像:
match = data.select {|x| x[:last_name] == 'Doe'}
返回:
{
"first_name": "Jane",
"last_name": "Doe",
"numbers": [6,4,1,35,2]
}
此外,我知道在技术上不会在ruby中工作,因为数据是json形式,但我将它从散列转换为json并且不想改变它,因为基本思想仍然是相同的。
答案 0 :(得分:5)
您可以使用生成器表达式,在其上调用next
以提供第一个匹配项(如果有):
match = next(d for d in data if d['last_name'] == 'Doe')