logo

Uporabite jsonify() namesto json.dumps() v Flasku

Tukaj bomo razumeli funkcijo jsonify() v spletnem ogrodju Flask za Python, ki pretvori izhod funkcije v odzivni objekt JSON. Podobno je j son.dumps() funkcijo v standardni knjižnici Python, ki objekt Python pretvori v niz, oblikovan v obliki JSON.

Kaj je jsonify()

Funkcija jsonify() je uporabna v aplikacijah Flask, ker samodejno nastavi pravilne glave odgovorov in vrsto vsebine za odgovore JSON ter vam omogoča enostavno vrnitev podatkov v obliki JSON iz vaših upravljavcev poti. Tako je ustvarjanje API-jev, ki vračajo podatke JSON, preprostejše in priročnejše.



Sintaksa funkcije jsonify().

Ta funkcija sprejme enega ali več pozicijskih argumentov, ki predstavljajo podatke, ki jih je treba pretvoriti v odzivni objekt JSON, in poljubno število ključnih argumentov, ki se uporabljajo za prilagoditev odzivnega objekta JSON.

jsonify(*args, **kwargs)

Primer jsonify() z brez argumenta



Jsonify() lahko uporabite brez argumentov; v tem primeru bo vrnil prazen odzivni objekt JSON s privzeto statusno kodo 200 (OK) in privzeto vrsto vsebine application/json.

Python3






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

>

>

Primer jsonify() z argumenti

V tem primeru kličemo jsonify() z enim pozicijskim argumentom (seznam uporabniških objektov), ​​pa tudi z dvema argumentoma ključne besede s statusom in tipom mime. Argument stanja se uporablja za nastavitev kode stanja HTTP za odgovor, argument mimetype pa za nastavitev vrste vsebine za odgovor.

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

V tem primeru imamo aplikacijo Flask s potjo, ki vrne seznam uporabniških objektov. Ko odjemalec pošlje zahtevo tej poti, se izvede funkcija get_users() in seznam uporabniških objektov se pretvori v odzivni objekt JSON s funkcijo jsonify(). Ta odzivni objekt JSON se nato pošlje nazaj odjemalcu.

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

>

>

Izhod:

Uporabite jsonify() namesto json.dumps() v Flasku

metoda jsonify().

json.dumps() metoda v Flasku

V nasprotju s tem, če bi uporabili json.dumps() funkcijo, bi morali sami pretvoriti seznam uporabniških objektov v niz, oblikovan v obliki JSON, nato pa nastaviti ustrezne glave odgovorov in ročno vrniti odgovor odjemalcu:

Uporaba jsonify() je na splošno enostavnejša in bolj priročna kot uporaba json.dumps(), zato je priporočljivo, da uporabite jsonify(), kadar koli je to mogoče v aplikacijah 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()>

>

pvr polna oblika
>

Izhod:

http://127.0.0.1:5000/api/users

Uporabite jsonify() namesto json.dumps() v Flasku

Zakaj uporabljati jsonify() namesto json.dumps()

Obstaja več razlogov, zakaj je priporočljivo uporabljati funkcijo jsonify() namesto funkcije json.dumps() v aplikacijah Flask:

  • Jsonify() je bolj priročen in lažji za uporabo kot json.dumps(). jsonify() ima preprosto in intuitivno sintakso ter samodejno obravnava podrobnosti pretvorbe vaših podatkov v odzivni objekt JSON in njihovega vračanja odjemalcu. Nasprotno pa json.dumps() zahteva, da te podrobnosti obdelate sami, kar je lahko bolj zamudno in nagnjeno k napakam.
  • Jsonify() samodejno nastavi pravilne glave odgovorov in vrsto vsebine za odgovore JSON, medtem ko json.dumps() ne. To pomeni, da vam pri uporabi jsonify() ni treba ročno nastaviti glave Content-Type na application/json, pri uporabi json.dumps() pa bi to morali narediti ročno.
  • jsonify() vam omogoča preprosto vrnitev podatkov v formatu JSON iz vaših upravljavcev poti, medtem ko json.dumps() tega ne omogoča. Z jsonify() lahko preprosto vrnete podatke, ki jih želite pretvoriti v odzivni objekt JSON iz vašega upravljalnika poti, jsonify() pa bo poskrbel za ostalo. Z json.dumps() bi morali sami pretvoriti podatke v niz, oblikovan v JSON, in jih nato vrniti kot del objekta Response.
  • Na splošno lahko z uporabo jsonify() namesto json.dumps() v aplikacijah Flask postane lažje in bolj priročno ustvarjanje API-jev, ki vračajo podatke JSON. Omogoča vam, da se osredotočite na podatke in logiko vaše aplikacije, namesto da bi morali skrbeti za podrobnosti oblikovanja in vračanja odgovorov JSON.