programing

Flask에서 목록을 'jsonify'하려면 어떻게 해야 합니까?

mbctv 2023. 4. 1. 09:52
반응형

Flask에서 목록을 'jsonify'하려면 어떻게 해야 합니까?

현재의Flask목록 지정 시 오류가 발생합니다.

보안상의 이유인 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를 사용하여 플라스크에 JSON 목록을 반환하려면 어떻게 해야 합니까?

안 되는데 이렇게 해도 돼요.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')

jsonify보안상의 이유로 Flask 0.10 이하에서는 이 작업을 수행할 수 없습니다.

어쨌든 하려면 그냥json.dumpsPython 표준 라이브러리에 있습니다.

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

이건 나한테 효과가 있어.어떤 버전의 플라스크를 사용하시나요?

from flask import jsonify

...

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

플라스크jsonify()method는 이제 커밋 시점부터 최상위 어레이를 시리얼화하며 Flask 0.11 이후부터 사용할 수 있습니다.

편의를 위해 Python 목록을 전달할 수 있습니다.jsonify([1,2,3])또는 일련의 패스args:jsonify(1,2,3)

둘 다 JSON 최상위 어레이로 시리얼화됩니다.[1,2,3]

상세내용은 이쪽:https://flask.palletsprojects.com/en/2.2.x/api/?http=jsonify#http.jsonify*

해결됐어, 야단법석 떨지 마.jsonify를 사용하면 귀찮을 수 있으므로 아이템=[목록]을 전달하기만 하면 됩니다.

솔루션을 보려면 여기를 참조하십시오.

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)

말 그대로 플라스크에서 JSON 목록을 반환하는 방법을 검색하고 변수가 목록임을 완전히 확신하는 경우 가장 쉬운 방법은 다음과 같습니다(여기서 bin은 1과 0의 목록입니다).

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

마지막으로 클라이언트에서는 다음과 같은 정보를 얻을 수 있습니다.

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

조소니파이 작업...그러나 'results' 키 없이 어레이를 전달하려는 경우 python에서 JSON 라이브러리를 사용할 수 있습니다.저는 다음 변환이 좋습니다.

import json

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

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

반응형