J'ai récemment étudié la programmation flask en python et j'utilise maintenant easyui de jQuery pour écrire une application Web. Le problème est maintenant qu'après avoir interrogé la base de données, je souhaite renvoyer les données json standard au front-end, mais le programme me le demande. :
File "D:\jQueryUI code\Flasktest.py", line 23, in p_statusnow
p_status_json = json.dumps({'total':total,'rows':[{'emp_sn':i.emp_sn,'name':i.name,'password':i.password,'emp_dept_sn':i.emp_dept_sn,'py_code':i.py_code,'wb_code':i.wb_code,'autograph':i.autograph} for i in user]},indent=4)
TypeError: <web.utils.IterBetter instance at 0x00000000033D8948> is not JSON serializable
Le code est le suivant :
@app.route('/p_statusnow',methods = ['GET','POST'])
def p_statusnow():
a=request.values.get('page')
print a
b=request.values.get('rows')
c=int(b)*(int(a)-1)
#user=db.query('select * from dic_user limit ')
user=db.select ('dic_user',offset=c,limit=b)
total=db.query('select count(*) from dic_user')
p_status_json = json.dumps({'total':total,'rows':[{'emp_sn':i.emp_sn,'name':i.name,'password':i.password,'emp_dept_sn':i.emp_dept_sn,'py_code':i.py_code,'wb_code':i.wb_code,'autograph':i.autograph} for i in user]},indent=4)
#print p_status_json
return p_status_json
Le problème a été trouvé, la raison n'est pas dans json.dumps, mais dans
Dans cette phrase, grâce à l'impression totale, la sortie est trouvée
C'est-à-dire qu'il n'est pas possible d'obtenir le nombre total d'enregistrements de cette manière. J'ai changé le programme et attribué le total à un :
Fonctionne normalement.
object
不能直接放到json
格式里。会报错的。django
里,有提供serialize
把对象序列化的方法。至于
flask
Je ne sais pas..