Wie erhalte ich vollständige JSON-Daten mit jsom.dumps?
天蓬老师
天蓬老师 2017-05-18 10:56:12
0
3
677

Ich habe kürzlich die Flaschenprogrammierung in Python studiert und verwende jetzt die EasyUI von jQuery, um eine Webanwendung zu schreiben. Das Problem besteht jetzt darin, dass ich nach der Abfrage der Datenbank Standard-JSON-Daten an das Frontend zurückgeben möchte, das Programm jedoch dazu auffordert :

 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

Der Code lautet wie folgt:

@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
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(3)
仅有的幸福

问题找到了,原因不在于json.dumps里,而是在于

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

这一句,通过print total,发现输出

<web.utils.IterBetter instance at 0x00000000037D0888>

也就是说想通过这样得到记录总数是行不通的。我把程序改了一下,把total通过赋给a:

    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

运行正常。

给我你的怀抱
from flask import jsonify
....


def foo():
    return jsonify({'test':1})
给我你的怀抱

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!