如何在给定一个信息的情况下访问JSON信息,如果另一个信息是Python中该信息的'sibling',而不是子信息?



我在Python中有一个JSON/dictionary对象,如下所示:

object = {"participants":
[
{"name": "Tyler", "role": "CEO"},
{"name": "Robin", "role": "analyst"}
{"name": "James", "role": "manager"}
]
}

给定一个人名,我如何访问他们的角色?由于角色不是"子信息";对于名称,不能只做

这样的操作
object['participants']['Tyler']['role']

什么的。您也不知道特定人员的索引(我假设您可以创建一个找到它的循环,如果这是唯一的解决方案),因此您不能只执行

object['participants'][0]['role']

也不是,因为Tyler刚好在索引0处

我会用这样的:

def jobs_where_name_is(json_object, name):
return {entry["role"] for entry in filter(lambda entry: entry["name"] == name, json_object["participants"])}

请注意,可能有多个具有相同姓名的人,这就是为什么返回一组作业而不是一个作业的原因。可能有不止一个人在同一份工作中使用相同的名字,所以这就是为什么我使用大括号(set)而不是方括号(list)。注意object在python中是一个关键字,所以不鼓励使用它作为变量名。

顺便说一下,如果你正在处理一个非常大的数据库,我建议你看看pymongo库。这可以大大提高您的性能,因为您可以本地使用mongodb查询。

相关内容

  • 没有找到相关文章

最新更新