logo

Використовуйте jsonify() замість json.dumps() у Flask

Тут ми розглянемо функцію jsonify() у веб-платформі Flask для Python, яка перетворює вихідні дані функції в об’єкт відповіді JSON. Це схоже на j son.dumps() у стандартній бібліотеці Python, яка перетворює об’єкт Python на рядок у форматі JSON.

Що таке jsonify()

Функція jsonify() корисна в програмах Flask, оскільки вона автоматично встановлює правильні заголовки відповідей і тип вмісту для відповідей JSON і дозволяє вам легко повертати дані у форматі JSON із ваших обробників маршрутів. Це полегшує та зручнішає створення API, які повертають дані JSON.



Синтаксис функції jsonify().

Ця функція приймає один або кілька позиційних аргументів, які представляють дані, які потрібно перетворити на об’єкт відповіді JSON, і будь-яку кількість ключових аргументів, які використовуються для налаштування об’єкта відповіді JSON.

jsonify(*args, **kwargs)

Приклад jsonify() без аргументу



Ви можете використовувати jsonify() без будь-яких аргументів, у цьому випадку він поверне порожній об’єкт відповіді JSON із кодом статусу за замовчуванням 200 (ОК) і типом вмісту за замовчуванням application/json.

Python3






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

>

>

Приклад jsonify() з аргументами

listnode

У цьому прикладі ми викликаємо jsonify() з одним позиційним аргументом (списком об’єктів користувача), а також двома ключовими аргументами зі статусом і mimetype. Аргумент status використовується для встановлення коду стану HTTP для відповіді, а аргумент mimetype використовується для встановлення типу вмісту для відповіді.

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'>)>

>

>

метод jsonify() у Flask

У цьому прикладі ми маємо додаток Flask із маршрутом, який повертає список об’єктів користувача. Коли клієнт робить запит до цього маршруту, виконується функція get_users(), а список об’єктів користувача перетворюється на об’єкт відповіді JSON за допомогою функції jsonify(). Потім цей об’єкт відповіді JSON надсилається назад клієнту.

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()>

>

>

Вихід:

Використовуйте jsonify() замість json.dumps() у Flask

метод jsonify().

метод json.dumps() у Flask

Навпаки, якби ви використовували json.dumps() вам потрібно буде самостійно перетворити список об’єктів користувача на рядок у форматі JSON, а потім встановити відповідні заголовки відповіді та повернути відповідь клієнту вручну:

Використання jsonify() загалом легше та зручніше, ніж використання json.dumps(), тому рекомендується використовувати jsonify() у програмах 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()>

>

npm install команда
>

Вихід:

http://127.0.0.1:5000/api/users

Використовуйте jsonify() замість json.dumps() у Flask

Навіщо використовувати jsonify() замість json.dumps()

Є кілька причин, чому рекомендується використовувати функцію jsonify() замість функції json.dumps() у програмах Flask:

  • Jsonify() зручніший і простіший у використанні, ніж json.dumps(). jsonify() має простий та інтуїтивно зрозумілий синтаксис, і він автоматично обробляє деталі перетворення ваших даних в об’єкт відповіді JSON і повернення його клієнту. Навпаки, json.dumps() вимагає від вас самостійно обробляти ці деталі, що може зайняти більше часу та бути схильним до помилок.
  • Функція jsonify() автоматично встановлює правильні заголовки відповідей і тип вмісту для відповідей JSON, тоді як json.dumps() цього не робить. Це означає, що вам не потрібно вручну встановлювати для заголовка Content-Type значення application/json під час використання jsonify(), але вам доведеться робити це вручну під час використання json.dumps().
  • jsonify() дозволяє вам легко повертати дані у форматі JSON із ваших обробників маршрутів, тоді як json.dumps() цього не робить. За допомогою jsonify() ви можете просто повернути дані, які потрібно перетворити на об’єкт відповіді JSON, із вашого обробника маршрутів, а jsonify() подбає про інше. За допомогою json.dumps() вам доведеться самостійно перетворити дані на рядок у форматі JSON, а потім повернути їх як частину об’єкта Response.
  • Загалом, використання jsonify() замість json.dumps() у програмах Flask може полегшити та зробити зручнішим створення API, які повертають дані JSON. Це дозволяє вам зосередитися на даних і логіці вашої програми, а не турбуватися про деталі форматування та повернення відповідей JSON.