logo

Utilizați jsonify() în loc de json.dumps() în Flask

Aici, vom înțelege funcția jsonify() din cadrul web Flask pentru Python, care convertește rezultatul unei funcții într-un obiect de răspuns JSON. Este similar cu j son.dumps() funcția din biblioteca standard Python, care convertește un obiect Python într-un șir formatat JSON.

Ce este jsonify()

Funcția jsonify() este utilă în aplicațiile Flask, deoarece setează automat anteturile corecte de răspuns și tipul de conținut pentru răspunsurile JSON și vă permite să returnați cu ușurință date în format JSON de la gestionatorii de rute. Acest lucru face mai ușor și mai convenabil crearea de API-uri care returnează date JSON.



Sintaxa funcției jsonify().

Această funcție preia unul sau mai multe argumente de poziție, care reprezintă datele care trebuie convertite într-un obiect de răspuns JSON și orice număr de argumente de cuvinte cheie, care sunt utilizate pentru a personaliza obiectul de răspuns JSON.

jsonify(*args, **kwargs)

Exemplu de jsonify() cu fără argument



Puteți utiliza jsonify() fără niciun argument, în acest caz va returna un obiect de răspuns JSON gol cu ​​un cod de stare implicit de 200 (OK) și un tip de conținut implicit de aplicație/json.

Python3

curs de matematică java






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

>

>

Exemplu de jsonify() cu argumente

În acest exemplu, apelăm jsonify() cu un singur argument pozițional (lista de obiecte utilizator), precum și cu două argumente cheie cu status și mimetype. Argumentul status este folosit pentru a seta codul de stare HTTP pentru răspuns, iar argumentul mimetype este folosit pentru a seta tipul de conținut pentru răspuns.

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() în Flask

În acest exemplu, avem o aplicație Flask cu o rută care returnează o listă de obiecte utilizator. Când un client face o cerere către această rută, funcția get_users() este executată și lista de obiecte utilizator este convertită într-un obiect de răspuns JSON folosind funcția jsonify(). Acest obiect de răspuns JSON este apoi trimis înapoi clientului.

Python3




alăturare stânga vs alăturare dreapta

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

>

>

Ieșire:

Utilizați jsonify() în loc de json.dumps() în Flask

metoda jsonify().

json.dumps() metoda în Flask

În schimb, dacă ar fi să utilizați json.dumps() funcție, ar trebui să convertiți singur lista de obiecte utilizator într-un șir formatat JSON, apoi să setați anteturile de răspuns adecvate și să returnați răspunsul la client manual:

Utilizarea jsonify() este, în general, mai ușoară și mai convenabilă decât utilizarea json.dumps(), așa că este recomandat să utilizați jsonify() ori de câte ori este posibil în aplicațiile 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()>

>

>

Ieșire:

http://127.0.0.1:5000/api/users

Utilizați jsonify() în loc de json.dumps() în Flask

De ce să folosiți jsonify() în loc de json.dumps()

Există mai multe motive pentru care este recomandat să utilizați funcția jsonify() în loc de funcția json.dumps() în aplicațiile Flask:

  • jsonify() este mai convenabil și mai ușor de utilizat decât json.dumps(). jsonify() are o sintaxă simplă și intuitivă și se ocupă automat de detaliile conversiei datelor dvs. într-un obiect de răspuns JSON și returnării acestuia către client. În schimb, json.dumps() vă solicită să gestionați singur aceste detalii, ceea ce poate consuma mai mult timp și poate fi mai predispus la erori.
  • jsonify() setează automat anteturile de răspuns corecte și tipul de conținut pentru răspunsurile JSON, în timp ce json.dumps() nu. Aceasta înseamnă că nu trebuie să setați manual antetul Content-Type la application/json când utilizați jsonify(), dar ar trebui să faceți acest lucru manual când utilizați json.dumps().
  • jsonify() vă permite să returnați cu ușurință date în format JSON de la gestionatorii de rute, în timp ce json.dumps() nu. Cu jsonify(), puteți returna pur și simplu datele pe care doriți să le convertiți într-un obiect de răspuns JSON de la gestionarea rutei, iar jsonify() se va ocupa de restul. Cu json.dumps(), ar trebui să convertiți singur datele într-un șir formatat JSON și apoi să le returnați ca parte a unui obiect Response.
  • În general, utilizarea jsonify() în loc de json.dumps() în aplicațiile Flask poate face mai ușor și mai convenabil crearea de API-uri care returnează date JSON. Vă permite să vă concentrați pe datele și logica aplicației dvs., în loc să vă faceți griji cu privire la detaliile formatării și returnării răspunsurilor JSON.