你好!
问题:我想知道如何使用列表理解来根据 python 列表中的单词过滤掉某些结果,或者以其他方式从列表中仅提取我需要的包含某个“关键字”的行。
概述:我正在使用 python 向 api 发出请求并收到了 json 请求。我已经使用 json.loads() 转换了 json,现在有一个我正在尝试使用的嵌套 python 列表:
{"results": [
{
**"id": 12345678,**
"applicant": {
"id": 11342542,
"first_name": "Mary",
"last_name": "Johnson",
"email": "mjohnson@example.org"
},
"average_score": 42.0,
"collaborators": [],
"created_at": "2020-06-02T*****",
"current_stage": {
"id": 5057743,
"title": "Reviewing"
},
"custom_fields": [],
"decision": null,
**"labels": [
{
"id": 1124354,
"name": "Jerusalem"
},
{
"id": 132456,
"name": "Testing Stuff"
}],**
"notes": [
{
"id": 536590,
"author": {
"id": 3342356287,
"first_name": "Brett",
"last_name": "Wallace",
"email": "bwallace@example.com"
},
我可以使用以下代码仅提取我需要的字段:
for application in r['results']:
print(application['id'],application['labels'])
我得到的东西看起来像这样:
18318202 [{'id': 109135, 'name': 'Jerusalem'}, {'id': 109198, 'name': 'Testing Stuff'}]
11233443 [{'id': 109135, 'name': 'Nazareth'}, {'id': 109198, 'name': 'Age Requirement'}]
有没有办法让我只返回 ['labels'] 字段中带有“Jerusalem”的值?换句话说,查看上面的示例,它只会返回第一行,因为第二行不包含耶路撒冷一词。我可以从数据中过滤此信息(条件打印语句)或将其提取到新列表中,但我无法弄清楚如何仅获取其中包含“耶路撒冷”的值。我找到的所有资源都讨论了如何加载和转换数据,但事后没有过滤掉。提前感谢任何人的时间和支持!
温温酱
相关分类