Tìm kiếm theo người dùng/trang
Bài học 6 trên 10 trong khóa học Dự án tìm kiếm mạng xã hội: kiến thức cơ bản về JSON trong Python của Coddy.
Giờ bạn cần triển khai từng tính năng tìm kiếm. Như mình đã đề cập trước đây, có 2 loại thực thể/tài khoản: user và page.
Bạn cần thêm một bộ lọc mới để giới hạn kết quả tìm kiếm ở một thực thể cụ thể.
Ví dụ, người dùng có thể muốn tìm tất cả user trong hệ thống. Khi đó, họ chọn user trong bộ lọc danh sách thả xuống entity, rồi nhấp vào Tìm kiếm.
Hàm của bạn sẽ nhận một chuỗi JSON chứa các bản ghi thực thể.
Các đối tượng JSON sẽ có định dạng như bên dưới. type có thể là user hoặc page
Ví dụ, một bản ghi user sẽ có dạng:
{
"name": "Robert McNally",
"city": "Hawaii",
"type": "user"
}một bản ghi page sẽ có dạng:
{
"name": "Friendly Neighborhood Coder",
"city": "Trivandrum",
"type": "page"
}Một nhóm các đối tượng này sẽ được đóng gói trong một mảng JSON có tên là result.
Vui lòng xem đầu vào mẫu trong thử thách để biết định dạng đầu vào.
Thử thách
DễViết một hàm searchby_entity nhận các giá trị sau:
all_entities- mảng chuỗi - Danh sách tất cả thực thể từ tệp JSON ở định dạng chuỗi JSONfilter_entity- chuỗi - Thực thể dùng làm bộ lọc đã chọn. Giá trị có thể là user, page hoặc group
Và trả về một danh sách Python, tức là danh sách all_entities đã lọc theo filter_entity.
Lưu ý rằng all_entities là một chuỗi JSON. Chuỗi này là một đối tượng JSON mà bạn cần chuyển đổi thành một đối tượng từ điển.
Ví dụ:
Đầu vào - 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
Đầu ra mong đợi - Danh sách bên dưới
[{
"name": "Friendly Neighborhood Coder",
"city": "Trivandrum",
"type": "page"
}, {
"name": "Coddy Official",
"city": "Haifa",
"type": "page"
}]Giải thích - Đối tượng từ điển có type="user" đã bị xóa khỏi danh sách all_entities .
Tự làm thử
def searchby_entity(all_entities, filter_entity):
# Viết code ở đâyTất cả bài học trong Dự án tìm kiếm mạng xã hội: kiến thức cơ bản về JSON trong Python
Tự luyện tập: Trình biên dịch Python online