Wyszukiwanie według użytkownika/strony
Lekcja 6 z 10 w kursie Projekt wyszukiwania w mediach społecznościowych — podstawy JSON w Pythonie w Coddy.
Teraz masz za zadanie kolejno zaimplementować funkcje wyszukiwania. Jak już wspomnieliśmy, istnieją 2 rodzaje encji/typów kont — użytkownik i strona.
Musisz dodać nowy filtr, aby można było zawęzić wyszukiwanie do konkretnej encji.
Na przykład użytkownik może chcieć wyszukać wszystkich użytkowników w systemie. W takim przypadku wybiera użytkownik w filtrze rozwijanym encja, a następnie klika Szukaj.
Twoja funkcja będzie otrzymywać ciąg JSON zawierający rekordy encji.
Obiekty JSON będą miały poniższy format. typ może mieć wartość user lub page
Na przykład rekord użytkownika będzie wyglądać tak:
{
"name": "Robert McNally",
"city": "Hawaii",
"type": "user"
}rekord strony będzie wyglądać tak:
{
"name": "Friendly Neighborhood Coder",
"city": "Trivandrum",
"type": "page"
}Wiele takich obiektów zostanie umieszczonych w tablicy JSON o nazwie result.
Sprawdź przykładowe dane wejściowe w wyzwaniu, aby poznać format danych wejściowych.
Wyzwanie
ŁatwyNapisz funkcję searchby_entity, która przyjmuje:
all_entities- tablica ciągów znaków - Lista wszystkich encji z pliku JSON w formacie ciągu JSONfilter_entity- ciąg znaków - Wybrana encja filtra. Wartością może być user, page lub group
i zwraca listę Pythona, czyli listę all_entities przefiltrowaną według filter_entity.
Pamiętaj, że all_entities jest ciągiem JSON. Ten ciąg jest obiektem JSON, który musisz przekonwertować na obiekt słownika.
Przykład:
Dane wejściowe - 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
Oczekiwany wynik - poniższa lista
[{
"name": "Friendly Neighborhood Coder",
"city": "Trivandrum",
"type": "page"
}, {
"name": "Coddy Official",
"city": "Haifa",
"type": "page"
}]Wyjaśnienie - Obiekt słownika z type="user" został usunięty z listy all_entities .
Spróbuj swoich sił
def searchby_entity(all_entities, filter_entity):
# Wpisz kod tutajWszystkie lekcje w sekcji Projekt wyszukiwania w mediach społecznościowych — podstawy JSON w Pythonie
2Użytkownicy mediów społecznościowych — JSON
Zapoznanie się z JSON3Podstawowa implementacja wyszukiwania
Pobieranie wszystkich rekordówWyszukiwanie według użytkownika/stronyPoćwicz samodzielnie: Kompilator Python online