首页 > 解决方案 > 如何使用关键字在 json 文件中搜索特定行?

问题描述

我想知道如何搜索具有特定名称的行。这是我的带有 json 的 .txt 文件:

{"people": [{"name": "Scott", "website": "stackabuse.com", "from": "Nebraska"}, {"name": "Larry", "website": "google.com", "from": "Michigan"}, {"name": "Tim", "website": "apple.com", "from": "Alabama"}]}

这是我的代码

import json

file = open('data.txt', "r")
read = file.read()
y = json.loads(read)

first = y["people"][0]
second = y["people"][1]
third = y["people"][2]

print(y["people"][0]["name"])

这会打印出 Scott,但是有没有办法在 json 文件中搜索名称为 Scott 的行?我试过 print(y["people"]["name": "Scott"]) 但这没有用。我希望输出为 {"name": "Scott", "website": "stackabuse.com", "from": "Nebraska"}

标签: pythonjsonsearchkeyword

解决方案


您可以使用列表推导来过滤列表。例如

>>> people = y['people']
>>> people_named_scott = [p for p in people if p['name'] == 'Scott']
>>> people_named_scott
[{'name': 'Scott', 'website': 'stackabuse.com', 'from': 'Nebraska'}]

推荐阅读