Menu
CoddyTech

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.

challenge icon

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 JSON
  • filter_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 ở đây

Tấ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

2Người dùng mạng xã hội JSON

Làm quen với JSON

3Triển khai tìm kiếm cơ bản

Lấy tất cả bản ghiTìm kiếm theo người dùng/trang

Tự luyện tập: Trình biên dịch Python online