在 flask 函数中返回时漂亮地打印一个 json 文件

Pretty Print a json file when returning in a flask function

我想弄清楚当我在 flask 函数中 return 时如何漂亮地打印 json 文件。我设法使用 json.dump 漂亮地打印了它,但没有使用 flask 函数。这就是我所拥有的":

from flask import Flask, jsonify
import flask
import json

app = Flask(__name__)

with open('VO/IFATC EG/qotd.json') as qotd_file:
    data = json.load(qotd_file)

    rr = data['questions']
    car = json.dumps(data, indent=4)
    print(car)

@app.route('/')
def words():
    return json.dumps(data, indent=4)

app.run()

它打印汽车,但我只得到

谢谢

在您的 html 中,将其放在这些标签之间:

<pre><code>your_return_json here</code></pre>

建议:使用jinja2 html模板en return render_template

from flask import Flask, jsonify, render_template
import flask
import json

app = Flask(__name__)

with open('VO/IFATC EG/qotd.json') as qotd_file:
    data = json.load(qotd_file)

    rr = data['questions']
    car = json.dumps(data, indent=4)
    print(car)

@app.route('/')
def words():
    return render_template('your_template.html from a templates subfolder', data=json.dumps(data, indent=4))

app.run()

文件夹 templates/ 中有一个 template.html 文件,内容为:

<pre><code>{{ data }}</code></pre>

有一个配置选项 JSONIFY_PRETTYPRINT_REGULAR 允许您执行此操作。

from flask import Flask, jsonify
import flask
import json

app = Flask(__name__)
app.config["JSONIFY_PRETTYPRINT_REGULAR"] = True

with open('VO/IFATC EG/qotd.json') as qotd_file:
    data = json.load(qotd_file)

    rr = data['questions']
    car = json.dumps(data, indent=4)
    print(car)

@app.route('/')
def words():
    return jsonify(data)

app.run()

请注意 return 使用 jsonify 而不是 json.dumps