Menu
CoddyTech

按用户/页面搜索

Coddy 社交媒体搜索项目:Python JSON 基础 课程的第 6 课,共 10 课。

现在,你需要逐个实现搜索功能。正如之前提到的,实体/账户类型有 2 种:user 和 page 

你需要添加一个新筛选器,以便将搜索范围缩小到特定实体。 

例如,用户可能想要搜索系统中的所有用户。这时,他们可以在实体下拉筛选器中选择 user ,然后点击搜索。

你的函数会收到一个包含实体记录的 JSON 字符串。

JSON 对象将采用以下格式。type 可以是 user 或 page

例如,用户记录如下:

{
	"name": "Robert McNally",
	"city": "Hawaii",
	"type": "user"
}

page记录如下:

{
	"name": "Friendly Neighborhood Coder",
	"city": "Trivandrum",
	"type": "page"
}

这些对象会被打包在一个名为 result 的 JSON 数组中。

请查看挑战中的示例输入,了解输入格式。

challenge icon

挑战

简单

编写一个函数 searchby_entity,它接收:

  • all_entities - 字符串数组 - JSON 文件中所有实体的列表,采用 JSON 字符串格式
  • filter_entity - 字符串 - 选定的筛选实体。值可以是 user、page 或 group

并输出一个 Python 列表,也就是按 filter_entity 筛选后的 all_entities 列表。


请注意,all_entities 是一个 JSON 字符串。该字符串是一个 JSON 对象,你需要将它转换为字典对象。

示例:

输入 - all_entities = 

{"result": [{
	"name": "Robert McNally",
	"city": "Hawaii",
	"type": "user"
}, {
	"name": "Friendly Neighborhood Coder",
	"city": "Trivandrum",
	"type": "page"
}, {
	"name": "Coddy Official",
	"city": "Haifa",
	"type": "page"
}]}

filter_entity = page 

 

预期输出 - 下面的列表 

[{
	"name": "Friendly Neighborhood Coder",
	"city": "Trivandrum",
	"type": "page"
}, {
	"name": "Coddy Official",
	"city": "Haifa",
	"type": "page"
}]

说明 - all_entities 列表中 type="user" 对应的字典对象已被移除。

亲手试试

def searchby_entity(all_entities, filter_entity):
    # 在这里编写代码

社交媒体搜索项目:Python JSON 基础中的所有课

3基本搜索功能实现

获取所有记录按用户/页面搜索

自己练习: Python 在线编译器