Python通过匹配值获取json数组项

收银员04

所以我有一个 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 并且不想将其改回,因为基本思想仍然相同。

摩西·科莱多耶

您可以使用生成器表达式,调用next它以提供第一个匹配项(如果有):

match = next(d for d in data if d['last_name'] == 'Doe')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章