logo

Käytä jsonify()-komentoa json.dumps()-funktion sijaan Flaskissa

Tässä ymmärrämme Pythonin Flask-verkkokehyksen jsonify()-funktion, joka muuntaa funktion tulosteen JSON-vastausobjektiksi. Se on samanlainen kuin j poika.dumps() funktio Python-standardikirjastossa, joka muuntaa Python-objektin JSON-muotoilluksi merkkijonoksi.

Mikä on jsonify()

Jsonify()-funktio on hyödyllinen Flask-sovelluksissa, koska se määrittää automaattisesti oikeat vastausotsikot ja sisältötyypin JSON-vastauksille ja mahdollistaa JSON-muotoisten tietojen palauttamisen helposti reitinkäsittelijöistäsi. Tämä tekee JSON-tietoja palauttavien sovellusliittymien luomisesta helpompaa ja kätevämpää.



Jsonify()-funktion syntaksi

Tämä funktio ottaa vastaan ​​yhden tai useamman sijaintiargumentin, jotka edustavat JSON-vastausobjektiksi muunnettavia tietoja, ja minkä tahansa määrän avainsanaargumentteja, joita käytetään JSON-vastausobjektin mukauttamiseen.

jsonify(*args, **kwargs)

Esimerkki jsonify()-funktiosta ilman argumenttia



Voit käyttää jsonify()-funktiota ilman argumentteja. Tässä tapauksessa se palauttaa tyhjän JSON-vastausobjektin, jonka oletustilakoodi on 200 (OK) ja sovelluksen/jsonin oletussisältötyyppi.

Python 3






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

>

>

Esimerkki jsonify()-funktiosta argumenteilla

Tässä esimerkissä kutsumme jsonify()-funktiota yhdellä sijaintiargumentilla (käyttäjäobjektien luettelolla) sekä kahdella avainsanaargumentilla, joissa on tila ja mime-tyyppi. Status-argumentilla asetetaan vastauksen HTTP-tilakoodi, ja mimetype-argumentilla asetetaan vastauksen sisältötyyppi.

Python 3




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

virhe: pääluokkaa ei löytynyt tai ladata

>

>

jsonify()-menetelmää Flaskissa

Tässä esimerkissä meillä on Flask-sovellus, jonka reitti palauttaa luettelon käyttäjäobjekteista. Kun asiakas tekee pyynnön tälle reitille, get_users()-funktio suoritetaan ja käyttäjäobjektien luettelo muunnetaan JSON-vastausobjektiksi jsonify()-funktion avulla. Tämä JSON-vastausobjekti lähetetään sitten takaisin asiakkaalle.

Python 3




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

>

>

Lähtö:

Käytä jsonify()-komentoa json.dumps()-funktion sijaan Flaskissa

jsonify() -menetelmä

json.dumps() -menetelmää Flaskissa

Sitä vastoin, jos käyttäisit json.dumps() -toimintoa, sinun on muunnettava käyttäjäobjektien luettelo itse JSON-muotoilluksi merkkijonoksi, asetettava sitten sopivat vastausotsikot ja palautettava vastaus asiakkaalle manuaalisesti:

Jsonify():n käyttäminen on yleensä helpompaa ja kätevämpää kuin json.dumps(), joten on suositeltavaa käyttää jsonify()-funktiota aina kun mahdollista Flask-sovelluksissa.

Python 3




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

>

>

Lähtö:

http://127.0.0.1:5000/api/users

Käytä jsonify()-komentoa json.dumps()-funktion sijaan Flaskissa

Miksi käyttää jsonify()-funktiota json.dumps()

On useita syitä, miksi on suositeltavaa käyttää jsonify()-funktiota json.dumps()-funktion sijaan Flask-sovelluksissa:

  • jsonify() on kätevämpi ja helpompi käyttää kuin json.dumps(). jsonify() on yksinkertainen ja intuitiivinen syntaksi, ja se käsittelee automaattisesti yksityiskohdat tietojen muuntamisesta JSON-vastausobjektiksi ja palauttamisesta asiakkaalle. Sitä vastoin json.dumps() edellyttää, että käsittelet nämä tiedot itse, mikä voi olla enemmän aikaa vievää ja virhealttiimpaa.
  • Jsonify() määrittää automaattisesti oikeat vastausotsikot ja sisältötyypin JSON-vastauksille, kun taas json.dumps() ei. Tämä tarkoittaa, että sinun ei tarvitse manuaalisesti asettaa Content-Type-otsikkoa application/jsoniksi käytettäessä jsonify(), mutta sinun on tehtävä se manuaalisesti käytettäessä json.dumps().
  • jsonify() antaa sinun helposti palauttaa JSON-muotoiltuja tietoja reitinkäsittelijöistäsi, kun taas json.dumps() ei. Jsonify():lla voit yksinkertaisesti palauttaa tiedot, jotka haluat muuntaa JSON-vastausobjektiksi reitinkäsittelijältä, ja jsonify() hoitaa loput. Kun käytät json.dumps(), sinun on muunnettava tiedot itse JSON-muotoilluksi merkkijonoksi ja palautettava se sitten osana Response-objektia.
  • Kaiken kaikkiaan jsonify():n käyttäminen json.dumps():n sijaan Flask-sovelluksissa voi helpottaa ja helpottaa JSON-tietoja palauttavien sovellusliittymien luomista. Sen avulla voit keskittyä sovelluksesi tietoihin ja logiikkaan sen sijaan, että joutuisit huolehtimaan muotoilun ja JSON-vastausten palauttamisen yksityiskohdista.