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ö:

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
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.