Flask加载本地json

kOs*_*ssi 12 python json flask

我正在努力解决如何在烧瓶中加载局部json.

from flask import Flask, render_template, json, url_for

def taiwan():
    json_data = open(url_for('static', filename="data/taiwan.json"))
    data = json.load(json_data)
    return render_template('taiwan.jade', data=data)
Run Code Online (Sandbox Code Playgroud)

这引发了一个IOError:没有这样的文件或目录:'/ static/css/taiwan.json'.但它仍然存在.

有什么建议

kOs*_*ssi 14

我最终得到了这个:

import os
from flask import Flask, render_template, url_for, json

def showjson():
    SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
    json_url = os.path.join(SITE_ROOT, "static/data", "taiwan.json")
    data = json.load(open(json_url))
    return render_template('showjson.jade', data=data)
Run Code Online (Sandbox Code Playgroud)

  • 这可能有助于下一个人:使用`app.root_path`.就是出于这个原因. (6认同)