【问题标题】:Reading a .json file in static folder读取静态文件夹中的 .json 文件
【发布时间】:2017-02-22 12:23:29
【问题描述】:

我正在尝试使用以下方法从我的 Flask 应用程序中读取 .json 文件:

def renderblog():
    with open(url_for("static", filename="blogs.json")) as blog_file:
        data = json.load(blog_file)

但是我得到了错误:

FileNotFoundError: [Errno 2] No such file or directory: '/static/blogs.json'

现在我知道该目录存在于我的项目结构中,但我不知道为什么会出现此错误。有任何想法吗?有没有特定的方法可以在 Flask 中检索.json

【问题讨论】:

  • 你能和我们分享你的目录框架吗?
  • url_for() 为您提供 url 路径,而不是文件路径。
  • 如果我使用 with open("/static/blogs.json") as blog_file: 或类似的东西,我会得到相同的响应
  • @MikeResoli:是的,因为/static 不是您文件系统上的目录。这不是相对文件路径。
  • @JánosFarkas:假设当前工作目录在正确的位置;不是所有的 WSGI 服务器都把你的进程放在那里。

标签: python json flask


【解决方案1】:

您生成了 URL 路径,而不是本地静态文件夹的路径。请改用app.static_folder attribute

def renderblog():
    filename = os.path.join(app.static_folder, 'blogs.json')
    with open(filename) as blog_file:
        data = json.load(blog_file)

【讨论】:

    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多