2012-05-23 12 views
6

zabawy z kolby i po prostu chciał wydrukować niektóre dane jako JSON sformatowany, ale wciąż otrzymuję błąd:jsonify nie jest zdefiniowane - Internal Server Error

NameError: global name 'jsonify' is not defined

from flask import Flask 
from flask import json 
app = Flask(__name__) 

@app.route("/") 
def testJSON(): 
     x = "Test1" 
     y = "Test2" 
     return jsonify(a=x,z=y) 

if __name__ == "__main__": 
     app.debug = True 
     app.run() 

Ich documentation mówi, że albo do zainstalowania Pythona 2.6 lub simplejson - Mam oba.

Python 2.7.3:

sys.version '2.7.3 (default, May 9 2012, 23:42:16) \n[GCC 4.4.3]'

simplejson:

[email protected]:~/PythonScripts# pip install simplejson Requirement already satisfied (use --upgrade to upgrade): simplejson in /usr/local/lib/python2.7/site-packages Cleaning up...

Odpowiedz

21

jsonify()is a function contained within the flask module.

Musisz go zaimportować.
Zmień początek skryptu do:

from flask import jsonify # <- `jsonify` instead of `json` 
+0

Znakomity, dzięki! I yeah @ThiefMaster jest poprawny - to właśnie to, co kończy się drukowaniem np .: {"a": "Test1", "z": "Test2"}. Po prostu uruchomiłem Pythona - nie wiedziałem, że to, w jaki sposób zostały skonfigurowane dokumenty, ma teraz sens. Czy istnieje sposób na zaimportowanie większej części biblioteki? (Podobnie jak w Javie można zaimportować Java.util. *) Ponadto - po prostu odświeżyłem stronę i widzę nowy komentarz Thiefmaster, ale nie widziałem, co ktoś inny zrobił. –

+2

Można zrobić "z importu kolby", ale ja * gorąco * zalecam, ponieważ może to spowodować wszystkie rodzaje trudnych do debugowania błędów przestrzeni nazw. Jeśli masz długą listę importów i chcesz podzielić ją na kilka linii, możesz je ująć w nawiasy/pareny, np .: 'from from flask import (fn1, fn2, fn3)' – bernie

+0

Dobrze wiedzieć! Głównie zajmowałem się bałaganem, bo jestem zgryźliwym kodem - więc to działa idealnie! –

Powiązane problemy