logo

Použijte jsonify() místo json.dumps() ve Flasku

Zde porozumíme funkci jsonify() ve webovém frameworku Flask pro Python, která převádí výstup funkce na objekt odpovědi JSON. Je to podobné jako u j son.dumps() funkce ve standardní knihovně Pythonu, která převádí objekt Pythonu na řetězec ve formátu JSON.

Co je jsonify()

Funkce jsonify() je užitečná v aplikacích Flask, protože automaticky nastavuje správná záhlaví odpovědí a typ obsahu pro odpovědi JSON a umožňuje vám snadno vracet data ve formátu JSON z vašich obslužných programů směrování. Díky tomu je snazší a pohodlnější vytvářet rozhraní API, která vracejí data JSON.



Syntaxe funkce jsonify().

Tato funkce přijímá jeden nebo více pozičních argumentů, které představují data, která mají být převedena na objekt odpovědi JSON, a libovolný počet argumentů klíčových slov, které se používají k přizpůsobení objektu odpovědi JSON.

jsonify(*args, **kwargs)

Příklad jsonify() s bez argumentu



Můžete použít jsonify() bez jakýchkoli argumentů, v tomto případě vrátí prázdný objekt odpovědi JSON s výchozím stavovým kódem 200 (OK) a výchozím typem obsahu application/json.

Python3




příkaz java return



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

>

>

Příklad jsonify() s argumenty

V tomto příkladu voláme jsonify() s jedním pozičním argumentem (seznam uživatelských objektů) a také dvěma argumenty klíčového slova se stavem a mimetypem. Argument status se používá k nastavení kódu stavu HTTP pro odpověď a argument mimetype se používá k nastavení typu obsahu pro odpověď.

Python3

kolo matematika java




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

V tomto příkladu máme aplikaci Flask s trasou, která vrací seznam uživatelských objektů. Když klient zadá požadavek na tuto trasu, provede se funkce get_users() a seznam uživatelských objektů se převede na objekt odpovědi JSON pomocí funkce jsonify(). Tento objekt odpovědi JSON je poté odeslán zpět klientovi.

Python3


json z java objektu



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

>

>

převést řetězec na celé číslo

Výstup:

Použijte jsonify() místo json.dumps() ve Flasku

metoda jsonify().

metoda json.dumps() ve Flasku

Na rozdíl od toho, pokud byste použili json.dumps() budete muset sami převést seznam uživatelských objektů na řetězec ve formátu JSON a poté nastavit příslušné hlavičky odpovědí a ručně vrátit odpověď klientovi:

Použití jsonify() je obecně jednodušší a pohodlnější než použití json.dumps(), proto se doporučuje používat jsonify() kdykoli je to možné v aplikacích 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()>

>

>

Výstup:

http://127.0.0.1:5000/api/users

mb na gb
Použijte jsonify() místo json.dumps() ve Flasku

Proč používat jsonify() místo json.dumps()

Existuje několik důvodů, proč se v aplikacích Flask doporučuje používat funkci jsonify() místo funkce json.dumps():

  • Funkce jsonify() je pohodlnější a jednodušší než json.dumps(). jsonify() má jednoduchou a intuitivní syntaxi a automaticky zpracovává podrobnosti o převodu vašich dat na objekt odpovědi JSON a jejich vrácení klientovi. Naproti tomu json.dumps() vyžaduje, abyste si tyto detaily zpracovali sami, což může být časově náročnější a náchylnější k chybám.
  • Funkce jsonify() automaticky nastaví správná záhlaví odpovědí a typ obsahu pro odpovědi JSON, zatímco json.dumps() nikoli. To znamená, že při použití jsonify() nemusíte ručně nastavovat záhlaví Content-Type na application/json, ale při použití json.dumps() byste to museli udělat ručně.
  • jsonify() vám umožňuje snadno vracet data ve formátu JSON z vašich obslužných programů směrování, zatímco json.dumps() nikoli. Pomocí jsonify() můžete jednoduše vrátit data, která chcete převést na objekt odpovědi JSON z vašeho obslužného programu trasy, a jsonify() se postará o zbytek. Pomocí json.dumps() byste museli sami převést data na řetězec ve formátu JSON a poté je vrátit jako součást objektu Response.
  • Celkově může použití jsonify() místo json.dumps() v aplikacích Flask usnadnit a pohodlněji vytvářet rozhraní API, která vracejí data JSON. Umožňuje vám soustředit se na data a logiku vaší aplikace a nemusíte se starat o podrobnosti formátování a vracení odpovědí JSON.