logo

Użyj jsonify() zamiast json.dumps() w Flasku

W tym miejscu omówimy funkcję jsonify() w środowisku internetowym Flask dla języka Python, która konwertuje dane wyjściowe funkcji na obiekt odpowiedzi JSON. Jest to podobne do j syn.zrzuca() funkcja w standardowej bibliotece Pythona, która konwertuje obiekt Pythona na ciąg w formacie JSON.

Co to jest jsonify()

Funkcja jsonify() jest przydatna w aplikacjach Flask, ponieważ automatycznie ustawia prawidłowe nagłówki odpowiedzi i typ treści dla odpowiedzi JSON, a także umożliwia łatwe zwracanie danych w formacie JSON z procedur obsługi tras. Dzięki temu tworzenie interfejsów API zwracających dane JSON jest łatwiejsze i wygodniejsze.



dodaj ciąg Java

Składnia funkcji jsonify().

Ta funkcja pobiera jeden lub więcej argumentów pozycyjnych, które reprezentują dane, które mają zostać przekonwertowane na obiekt odpowiedzi JSON, oraz dowolną liczbę argumentów słów kluczowych, które są używane do dostosowywania obiektu odpowiedzi JSON.

jsonify(*args, **kwargs)

Przykład jsonify() bez argumentu



Możesz użyć funkcji jsonify() bez żadnych argumentów, w tym przypadku zwróci ona pusty obiekt odpowiedzi JSON z domyślnym kodem stanu 200 (OK) i domyślnym typem zawartości aplikacja/json.

Python3






from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()>

>

>

Przykład jsonify() z argumentami

W tym przykładzie wywołujemy funkcję jsonify() z pojedynczym argumentem pozycyjnym (listą obiektów użytkownika) oraz dwoma argumentami kluczowymi ze statusem i typem MIME. Argument status służy do ustawiania kodu stanu HTTP odpowiedzi, a argument typu MIME służy do ustawiania typu treści odpowiedzi.

Python3




from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'Alice'>}, {>'id'>:>2>,>'username'>:>'Bob'>}]> >return> jsonify(users, status>=>200>, mimetype>=>'application/json'>)>

>

>

metoda jsonify() w Flasku

W tym przykładzie mamy aplikację Flask z trasą, która zwraca listę obiektów użytkownika. Gdy klient wysyła żądanie do tej trasy, wykonywana jest funkcja get_users(), a lista obiektów użytkownika jest konwertowana na obiekt odpowiedzi JSON za pomocą funkcji jsonify(). Ten obiekt odpowiedzi JSON jest następnie odsyłany do klienta.

proszę

Python3




from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/'>)> def> get_users():> >print>(>'Using jsonify'>)> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pallavi'>}]> >return> jsonify({>'users'>: users})> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Wyjście:

Użyj jsonify() zamiast json.dumps() w Flasku

metoda jsonify().

Metoda json.dumps() w Flasku

W przeciwieństwie do tego, jeśli miałbyś użyć json.dumps() funkcji, musiałbyś samodzielnie przekonwertować listę obiektów użytkownika na ciąg w formacie JSON, a następnie ustawić odpowiednie nagłówki odpowiedzi i ręcznie zwrócić odpowiedź do klienta:

Używanie jsonify() jest ogólnie łatwiejsze i wygodniejsze niż używanie json.dumps(), dlatego zaleca się używanie jsonify() gdy tylko jest to możliwe w aplikacjach Flask.

Python3




from> flask>import> Flask, Response> import> json> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pandey'>}]> >response>=> Response(> >response>=>json.dumps(users),> >status>=>200>,> >mimetype>=>'application/json'> >)> >return> response> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Wyjście:

http://127.0.0.1:5000/api/users

Użyj jsonify() zamiast json.dumps() w Flasku

Dlaczego warto używać jsonify() zamiast json.dumps()

Istnieje kilka powodów, dla których zaleca się używanie funkcji jsonify() zamiast funkcji json.dumps() w aplikacjach Flask:

  • Funkcja jsonify() jest wygodniejsza i łatwiejsza w użyciu niż json.dumps(). jsonify() ma prostą i intuicyjną składnię i automatycznie obsługuje szczegóły konwersji danych na obiekt odpowiedzi JSON i zwracania ich do klienta. Natomiast json.dumps() wymaga, abyś sam zajął się tymi szczegółami, co może być bardziej czasochłonne i podatne na błędy.
  • Funkcja jsonify() automatycznie ustawia prawidłowe nagłówki odpowiedzi i typ zawartości dla odpowiedzi JSON, podczas gdy funkcja json.dumps() tego nie robi. Oznacza to, że nie musisz ręcznie ustawiać nagłówka Content-Type na application/json podczas korzystania z jsonify(), ale musiałbyś to zrobić ręcznie podczas korzystania z json.dumps().
  • Funkcja jsonify() umożliwia łatwe zwracanie danych w formacie JSON z procedur obsługi tras, podczas gdy funkcja json.dumps() tego nie umożliwia. Dzięki funkcji jsonify() możesz po prostu zwrócić dane, które chcesz przekonwertować, na obiekt odpowiedzi JSON z procedury obsługi trasy, a funkcja jsonify() zajmie się resztą. W przypadku metody json.dumps() konieczne byłoby samodzielne przekonwertowanie danych na ciąg znaków w formacie JSON, a następnie zwrócenie ich jako części obiektu Response.
  • Ogólnie rzecz biorąc, użycie funkcji jsonify() zamiast json.dumps() w aplikacjach Flask może ułatwić i wygodniej tworzyć interfejsy API zwracające dane JSON. Pozwala skupić się na danych i logice aplikacji, zamiast martwić się szczegółami formatowania i zwracania odpowiedzi JSON.