programing tip

Flask에서 목록을 어떻게`jsonify`합니까?

itbloger 2020. 10. 5. 07:44
반응형

Flask에서 목록을 어떻게`jsonify`합니까? [복제]


이 질문에 이미 답변이 있습니다.

현재 Flask목록을 jsonifying 할 때 오류가 발생합니다.

https://github.com/mitsuhiko/flask/issues/170 보안상의 이유가있을 수 있다는 것을 알고 있지만 여전히 다음과 같은 JSON 목록을 반환하는 방법을 갖고 싶습니다.

[
    {'a': 1, 'b': 2},
    {'a': 5, 'b': 10}
]

대신에

{ 'results': [
    {'a': 1, 'b': 2},
    {'a': 5, 'b': 10}
]}

application/json요청 에 응답합니다 . Jsonify를 사용하여 Flask에서 JSON 목록을 반환하려면 어떻게해야합니까?


jsonify보안상의 이유로 Flask 0.10 이하에서이 작업을 수행하지 못하도록합니다 .

어쨌든 그렇게하려면 json.dumpsPython 표준 라이브러리에서 사용 하십시오.

http://docs.python.org/library/json.html#json.dumps


당신은 할 수 없지만 어쨌든 이렇게 할 수 있습니다. jQuery-File-Upload에 필요했습니다.

import json
# get this object
from flask import Response

#example data:

    js = [ { "name" : filename, "size" : st.st_size , 
        "url" : url_for('show', filename=filename)} ]
#then do this
    return Response(json.dumps(js),  mimetype='application/json')

이것은 나를 위해 일하고 있습니다. 어떤 버전의 Flask를 사용하고 있습니까?

from flask import jsonify

...

@app.route('/test/json')
def test_json():
    list = [
            {'a': 1, 'b': 2},
            {'a': 5, 'b': 10}
           ]
    return jsonify(results = list)

Flask의 jsonify()메서드는 이제 Flask 0.11 이상에서 사용할 수있는 이 commit 에서 최상위 배열을 직렬화 합니다.

편의를 위해 Python 목록을 jsonify([1,2,3])전달하거나 일련의 args다음을 전달할 수 있습니다 .jsonify(1,2,3)

둘 다 JSON 최상위 배열로 직렬화됩니다. [1,2,3]

세부 정보 : http://flask.pocoo.org/docs/dev/api/#flask.json.jsonify


소란스럽지 않고 해결되었습니다. 게으르고 jsonify를 사용할 수 있습니다. items = [your list]를 전달하기 만하면됩니다.

여기에서 해결책을 찾으십시오.

https://github.com/mitsuhiko/flask/issues/510


플라스크의 목록은 다음 과 같이 jsonify를 사용하여 쉽게 jsonify 할 수 있습니다 .

from flask import Flask,jsonify
app = Flask(__name__)

tasks = [
    {
        'id':1,
        'task':'this is first task'
    },
    {
        'id':2,
        'task':'this is another task'
    }
]

@app.route('/app-name/api/v0.1/tasks',methods=['GET'])
def get_tasks():
    return jsonify({'tasks':tasks})  #will return the json

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

If you are searching literally the way to return a JSON list in flask and you are completly sure that your variable is a list then the easy way is (where bin is a list of 1's and 0's):

   return jsonify({'ans':bin}), 201

Finally, in your client you will obtain something like

{ "ans": [ 0.0, 0.0, 1.0, 1.0, 0.0 ] }


josonify works..but if you intend to just pass an array without the 'results' key, you can use json library from python. The following conversion works for me..

 import json

 @app.route('/test/json')
 def test_json():
 list = [
        {'a': 1, 'b': 2},
        {'a': 5, 'b': 10}
       ]
 return json.dumps(list))

참고URL : https://stackoverflow.com/questions/12435297/how-do-i-jsonify-a-list-in-flask

반응형