Python 3.x 获取字典列表中具有键/值的字典

Python 3.x 获取字典列表中具有键/值的字典,python-3.x,Python 3.x,我有一个字典列表,如下所示: [ { "name": "hello", "value": "world" }, { "name": "foo", "value": "bar" } ] 从字典列表中获取字典的python方法是什么?假设您的dict列表存储为变量l,您可以将next()与这样的生成器表达式一起使用,该表达式返回name键为foo的第一个dict: next(d for d in l i

我有一个字典列表,如下所示:

[
    {
        "name": "hello",
        "value": "world"
    },
    {
        "name": "foo",
        "value": "bar"
    }
]

从字典列表中获取字典的python方法是什么?

假设您的dict列表存储为变量
l
,您可以将
next()
与这样的生成器表达式一起使用,该表达式返回
name
键为
foo
的第一个dict:

next(d for d in l if d['name'] == 'foo')

如果
name
键等于
foo

l
中没有dict,这将引发
StopIteration
,假设dict列表存储为变量
l
,则可以将
next()
与这样的生成器表达式一起使用,返回其
名称
键为
foo
的第一个dict:

next(d for d in l if d['name'] == 'foo')

如果
l
中没有dict且
name
键等于
foo

,则这将引发
StopIteration
,请尝试此简单示例

data = [
    {
        "name": "hello",
        "value": "world"
    },
    {
        "name": "foo",
        "value": "bar"
    }
  ]


for item in data:
    if item['name'] == 'foo':
        print(item)
输出:

{'name': 'foo', 'value': 'bar'}

试试这个简单的例子

data = [
    {
        "name": "hello",
        "value": "world"
    },
    {
        "name": "foo",
        "value": "bar"
    }
  ]


for item in data:
    if item['name'] == 'foo':
        print(item)
输出:

{'name': 'foo', 'value': 'bar'}

总会有一场比赛吗?如果有零个或多个匹配项,您想要什么?是否总是有一个匹配项?如果有零个或多个匹配项,您想要什么?我将添加
next
还接受可选的第二个参数,这是要返回的默认值。因此,如果执行
next(迭代器,无)
操作,您可以接收正在查找的项目,或者如果未找到任何内容,则可以接收
None
,以防您不想捕获异常。我将添加
next
还接受可选的第二个参数,这是要返回的默认值。因此,如果执行
next(迭代器,无)
操作,您可以接收正在查找的项目,或者如果未找到任何内容,则可以接收
None
,以防您不想捕获异常。