logo

Naudokite jsonify() vietoj json.dumps() kolboje

Čia suprasime funkciją jsonify() „Python“ žiniatinklio sistemoje „Flask“, kuri konvertuoja funkcijos išvestį į JSON atsako objektą. Jis panašus į j son.dumps() funkcija Python standartinėje bibliotekoje, kuri konvertuoja Python objektą į JSON formatuotą eilutę.

Kas yra jsonify ()

Funkcija jsonify() yra naudinga Flask programose, nes ji automatiškai nustato teisingas atsakymo antraštes ir turinio tipą JSON atsakymams ir leidžia lengvai grąžinti JSON formatuotus duomenis iš maršruto tvarkyklių. Taip lengviau ir patogiau kurti API, kurios grąžina JSON duomenis.



Funkcijos jsonify() sintaksė

Ši funkcija priima vieną ar daugiau pozicinių argumentų, kurie nurodo duomenis, kurie turi būti konvertuojami į JSON atsako objektą, ir bet kokį raktinio žodžio argumentų skaičių, kurie naudojami JSON atsako objektui tinkinti.

jsonify(*args, **kwargs)

Jsonify() su be argumento pavyzdys



Galite naudoti jsonify() be jokių argumentų, šiuo atveju jis grąžins tuščią JSON atsakymo objektą su numatytuoju būsenos kodu 200 (OK) ir numatytuoju programos / json turinio tipu.

pabėgimo simbolis java

Python3






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

>

>

fizzbuzz java

Jsonify() pavyzdys su argumentais

Šiame pavyzdyje mes iškviečiame jsonify() su vienu pozicijos argumentu (vartotojo objektų sąrašu), taip pat dviem raktinio žodžio argumentais su būsena ir mimetype. Būsenos argumentas naudojamas HTTP būsenos kodui nustatyti atsakymui, o argumentas mimetype naudojamas atsako turinio tipui nustatyti.

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

>

surūšiuotas java masyvų sąrašas

>

jsonify() metodą „Flask“.

Šiame pavyzdyje turime „Flask“ programą su maršrutu, kuris pateikia vartotojo objektų sąrašą. Kai klientas pateikia šio maršruto užklausą, vykdoma funkcija get_users() ir vartotojo objektų sąrašas konvertuojamas į JSON atsakymo objektą naudojant funkciją jsonify(). Tada šis JSON atsakymo objektas siunčiamas atgal klientui.

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

>

>

konvertuoti eilutę į sveikąjį skaičių

Išvestis:

Naudokite jsonify() vietoj json.dumps() kolboje

jsonify() metodas

json.dumps() metodą Flask

Priešingai, jei naudotumėte json.dumps() funkciją, jums reikės patiems konvertuoti vartotojo objektų sąrašą į JSON formatuotą eilutę, tada nustatyti atitinkamas atsakymo antraštes ir rankiniu būdu grąžinti atsakymą klientui:

Naudoti jsonify() paprastai yra lengviau ir patogiau nei naudoti json.dumps(), todėl rekomenduojama naudoti jsonify(), kai tik įmanoma Flask programose.

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

>

>

Išvestis:

http://127.0.0.1:5000/api/users

pridėti prie masyvo java
Naudokite jsonify() vietoj json.dumps() kolboje

Kodėl verta naudoti jsonify() vietoj json.dumps()

Yra keletas priežasčių, kodėl Flask programose rekomenduojama naudoti funkciją jsonify() vietoj funkcijos json.dumps():

  • Jsonify() yra patogesnis ir lengviau naudojamas nei json.dumps(). jsonify() turi paprastą ir intuityvią sintaksę ir automatiškai tvarko duomenis apie duomenų konvertavimą į JSON atsako objektą ir grąžinimą klientui. Priešingai, json.dumps() reikalauja, kad šią informaciją tvarkytumėte patys, o tai gali užtrukti daugiau laiko ir sukelti klaidų.
  • jsonify() automatiškai nustato teisingas atsakymo antraštes ir turinio tipą JSON atsakymams, o json.dumps() ne. Tai reiškia, kad jums nereikia rankiniu būdu nustatyti turinio tipo antraštės į application/json, kai naudojate jsonify (), bet turėsite tai padaryti rankiniu būdu, kai naudojate json.dumps ().
  • jsonify() leidžia lengvai grąžinti JSON formatuotus duomenis iš maršruto tvarkyklių, o json.dumps() – ne. Naudodami jsonify(), galite tiesiog grąžinti duomenis, kuriuos norite konvertuoti į JSON atsako objektą iš maršruto tvarkyklės, o jsonify() pasirūpins visa kita. Naudodami json.dumps(), turėsite patys konvertuoti duomenis į JSON formato eilutę ir grąžinti juos kaip atsako objekto dalį.
  • Apskritai, naudojant jsonify() vietoj json.dumps() Flask programose gali būti lengviau ir patogiau kurti API, kurios grąžina JSON duomenis. Tai leidžia sutelkti dėmesį į programos duomenis ir logiką, o ne nerimauti dėl formatavimo ir JSON atsakymų grąžinimo informacijos.