Qui comprenderemo la funzione jsonify() nel framework Web Flask per Python che converte l'output di una funzione in un oggetto di risposta JSON. È simile al j figlio.dump() funzione nella libreria standard Python, che converte un oggetto Python in una stringa in formato JSON.
Cos'è jsonify()
La funzione jsonify() è utile nelle app Flask perché imposta automaticamente le intestazioni di risposta e il tipo di contenuto corretti per le risposte JSON e consente di restituire facilmente dati in formato JSON dai gestori di route. Ciò rende più semplice e conveniente la creazione di API che restituiscono dati JSON.
Sintassi della funzione jsonify()
Questa funzione accetta uno o più argomenti posizionali, che rappresentano i dati da convertire in un oggetto di risposta JSON, e un numero qualsiasi di argomenti di parole chiave, utilizzati per personalizzare l'oggetto di risposta JSON.
jsonify(*args, **kwargs)
Esempio di jsonify() senza argomenti
Puoi utilizzare jsonify() senza argomenti, in questo caso restituirà un oggetto di risposta JSON vuoto con un codice di stato predefinito pari a 200 (OK) e un tipo di contenuto predefinito application/json.
Python3
from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()> |
>
>
Esempio di jsonify() con argomenti
livecricket.is
In questo esempio, chiameremo jsonify() con un singolo argomento posizionale (l'elenco degli oggetti utente), oltre a due argomenti chiave con status e mimetype. L'argomento status viene utilizzato per impostare il codice di stato HTTP per la risposta e l'argomento mimetype viene utilizzato per impostare il tipo di contenuto per la risposta.
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'>)> |
>
>
metodo jsonify() in Flask
In questo esempio abbiamo un'app Flask con una route che restituisce un elenco di oggetti utente. Quando un client effettua una richiesta a questa route, viene eseguita la funzione get_users() e l'elenco di oggetti utente viene convertito in un oggetto di risposta JSON utilizzando la funzione jsonify(). Questo oggetto di risposta JSON viene quindi rinviato al client.
Python3
cos'è un hashset in Java
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()> |
>
>
Produzione:

metodo jsonify()
metodo json.dumps() in Flask
Al contrario, se dovessi utilizzare il file json.dumps() funzione, dovresti convertire tu stesso l'elenco di oggetti utente in una stringa in formato JSON, quindi impostare le intestazioni di risposta appropriate e restituire manualmente la risposta al client:
L'uso di jsonify() è generalmente più semplice e conveniente rispetto all'uso di json.dumps(), quindi è consigliabile utilizzare jsonify() quando possibile nelle app 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()> |
>
carattere Java a int
>
Produzione:
http://127.0.0.1:5000/api/users
Perché utilizzare jsonify() invece di json.dumps()
Esistono diversi motivi per cui è consigliabile utilizzare la funzione jsonify() anziché la funzione json.dumps() nelle app Flask:
- jsonify() è più comodo e più facile da usare rispetto a json.dumps(). jsonify() ha una sintassi semplice e intuitiva e gestisce automaticamente i dettagli della conversione dei dati in un oggetto di risposta JSON e della restituzione al client. Al contrario, json.dumps() richiede che tu gestisca questi dettagli da solo, il che può richiedere più tempo ed essere soggetto a errori.
- jsonify() imposta automaticamente le intestazioni di risposta e il tipo di contenuto corretti per le risposte JSON, mentre json.dumps() no. Ciò significa che non devi impostare manualmente l'intestazione Content-Type su application/json quando usi jsonify(), ma dovresti farlo manualmente quando usi json.dumps().
- jsonify() ti consente di restituire facilmente dati in formato JSON dai tuoi gestori di percorso, mentre json.dumps() no. Con jsonify(), puoi semplicemente restituire i dati che desideri convertire in un oggetto di risposta JSON dal gestore del percorso e jsonify() si occuperà del resto. Con json.dumps(), dovresti convertire tu stesso i dati in una stringa formattata JSON e quindi restituirli come parte di un oggetto Response.
- Nel complesso, l'utilizzo di jsonify() anziché json.dumps() nelle app Flask può rendere più semplice e conveniente la creazione di API che restituiscono dati JSON. Ti consente di concentrarti sui dati e sulla logica della tua app, invece di doverti preoccupare dei dettagli della formattazione e della restituzione delle risposte JSON.