【问题标题】:Load random image from static folder that is linked with JSON file从与 JSON 文件链接的静态文件夹加载随机图像
【发布时间】:2019-05-17 20:10:40
【问题描述】:

我正在尝试基于rebuses 在 Python 中创建一个谜语游戏。

我有一个包含文件名和答案的 JSON 文件。我正在尝试创建游戏逻辑,该逻辑本质上是从静态文件夹中加载随机图像并将其链接到 JSON 文件和答案。正确答案可以让您进入下一个答案。

我尝试了各种我在网上找到的从静态文件夹加载随机图像和彼此独立的随机 JSON 对象的方法,但我不知道如何加载它们并使它们相互关联。

json 代码:

{
"questions": [
    {
        "imageUrl": "/static/Beg-2-Differ.png"
        "imagename": "Beg-2-Differ.png",
        "answer": "beg to differ"
    },
    {
        "imageUrl": "/static/bote.png"
        "imagename": "Beginning-Of-The_End.png",
        "answer": "Beginning of the end"
    },
]
}

如果我能指出如何编写 python 代码来解决这个问题的正确方向,那将对我有很大帮助!

【问题讨论】:

  • 因此,一旦您从静态文件夹中加载了随机图像,您基本上是在问如何在questions 列表中找到相应的对象?
  • @WillKeeling 是的,就是这样。

标签: python json python-2.7 flask


【解决方案1】:

如果您从静态文件夹加载了随机图像,那么您应该已经有了该图像的文件名。基于此,您可以迭代问题对象列表并查找具有该文件名的 imageUrl 的对象。

您没有显示用于加载随机图像的代码,但假设它看起来类似于以下内容:

import random
import os

static_folder = '/path/to/static'
random_image = random.choice(os.listdir(static_folder))

with open(os.path.join(static_folder, random_image), 'rb') as image_file:
    # Do something with the loaded image_file

然后您可以像这样加载相应的问题对象:

import json
import os

with open('/path/to/questions.json') as json_file:
    data = json.load(json_file)

    for question in data['questions']:
        if os.path.basename(question['imageUrl']) == random_image:
            # We've found the question object for the image

这使用imageUrl 的文件名进行比较,我假设它对应于磁盘上的实际文件名(而不是imagename,它似乎对应于显示名称)。

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 2018-09-01
    • 2022-08-15
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2019-10-21
    相关资源
    最近更新 更多