Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir des données JSON complètes à l'aide de jsom.dumps ?

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
天蓬老师天蓬老师2712 Il y a quelques jours676

répondre à tous(3)je répondrai

  • 仅有的幸福

    仅有的幸福2017-05-18 10:58:12

    Le problème a été trouvé, la raison n'est pas dans json.dumps, mais dans

    total=db.query('select count(*) from dic_user')

    Dans cette phrase, grâce à l'impression totale, la sortie est trouvée

    <web.utils.IterBetter instance at 0x00000000037D0888>

    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 :

        total=db.query('select count(*) as num from dic_user')
        for i in total:
            a=i.num
        p_status_json = json.dumps({'total':a,'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

    Fonctionne normalement.

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:58:12

    from flask import jsonify
    ....
    
    
    def foo():
        return jsonify({'test':1})

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:58:12

    object 不能直接放到 json 格式里。会报错的。
    django 里,有提供 serialize 把对象序列化的方法。
    至于 flask Je ne sais pas..

    répondre
    0
  • Annulerrépondre