Här kommer vi att förstå funktionen jsonify() i webbramverket Flask för Python som konverterar utdata från en funktion till ett JSON-svarsobjekt. Det liknar j son.dumps() funktion i Python-standardbiblioteket, som konverterar ett Python-objekt till en JSON-formaterad sträng.
Vad är jsonify()
Funktionen jsonify() är användbar i Flask-appar eftersom den automatiskt ställer in rätt svarsrubriker och innehållstyp för JSON-svar, och låter dig enkelt returnera JSON-formaterad data från dina rutthanterare. Detta gör det enklare och bekvämare att skapa API:er som returnerar JSON-data.
Syntax för funktionen jsonify().
Den här funktionen tar in ett eller flera positionsargument, som representerar data som ska konverteras till ett JSON-svarsobjekt, och valfritt antal nyckelordsargument, som används för att anpassa JSON-svarsobjektet.
jsonify(*args, **kwargs)
Exempel på jsonify() med utan argument
Du kan använda jsonify() utan några argument, i det här fallet kommer det att returnera ett tomt JSON-svarsobjekt med en standardstatuskod på 200 (OK) och en standardinnehållstyp för applikation/json.
Python3
pete davidson nationalitet
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()> |
>
>
Exempel på jsonify() med argument
I det här exemplet anropar vi jsonify() med ett enda positionsargument (listan över användarobjekt), samt två nyckelordsargument med status och mimetyp. Statusargumentet används för att ställa in HTTP-statuskoden för svaret, och mimetype-argumentet används för att ställa in innehållstypen för svaret.
Python3
system.out.println
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'>)> |
>
sträng till int-omvandlare
>
jsonify()-metoden i Flask
I det här exemplet har vi en Flask-app med en rutt som returnerar en lista med användarobjekt. När en klient gör en begäran till denna rutt exekveras funktionen get_users() och listan över användarobjekt konverteras till ett JSON-svarsobjekt med hjälp av jsonify()-funktionen. Detta JSON-svarsobjekt skickas sedan tillbaka till klienten.
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()> |
>
>
konvertera sträng till heltal
Produktion:

jsonify() metod
json.dumps()-metoden i Flask
Om du däremot skulle använda json.dumps() funktion, skulle du behöva konvertera listan med användarobjekt till en JSON-formaterad sträng själv och sedan ställa in lämpliga svarsrubriker och returnera svaret till klienten manuellt:
Att använda jsonify() är i allmänhet enklare och bekvämare än att använda json.dumps(), så det rekommenderas att använda jsonify() när det är möjligt i Flask-appar.
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()> |
>
>
Produktion:
http://127.0.0.1:5000/api/users
lär dig noggrannhetspoäng
Varför använda jsonify() istället för json.dumps()
Det finns flera anledningar till varför det rekommenderas att använda funktionen jsonify() istället för funktionen json.dumps() i Flask-appar:
- Jsonify() är bekvämare och enklare att använda än json.dumps(). jsonify() har en enkel och intuitiv syntax, och den hanterar automatiskt detaljerna för att konvertera din data till ett JSON-svarsobjekt och returnera den till klienten. Däremot kräver json.dumps() att du hanterar dessa detaljer själv, vilket kan vara mer tidskrävande och felbenäget.
- jsonify() ställer automatiskt in rätt svarsrubriker och innehållstyp för JSON-svar, medan json.dumps() inte gör det. Detta innebär att du inte manuellt behöver ställa in Content-Type-huvudet till application/json när du använder jsonify(), men du måste göra det manuellt när du använder json.dumps().
- jsonify() låter dig enkelt returnera JSON-formaterad data från dina rutthanterare, medan json.dumps() inte gör det. Med jsonify() kan du helt enkelt returnera den data som du vill ska konverteras till ett JSON-svarsobjekt från din rutthanterare, och jsonify() tar hand om resten. Med json.dumps() måste du själv konvertera data till en JSON-formaterad sträng och sedan returnera den som en del av ett Response-objekt.
- Sammantaget kan användning av jsonify() istället för json.dumps() i Flask-appar göra det enklare och bekvämare att skapa API:er som returnerar JSON-data. Det låter dig fokusera på data och logik i din app, snarare än att behöva oroa dig för detaljerna i formatering och returnerande JSON-svar.