我正在尝试基于rebuses用Python创建一个谜语游戏。
我有一个包含文件名和答案的JSON文件。我正在尝试创建游戏逻辑,该逻辑本质上是从静态文件夹加载随机图像,并将其链接到JSON文件和答案。正确的答案可以使您进入下一个答案。
我已经尝试了多种在线方法,这些方法可以从静态文件夹中加载随机图像和彼此独立的随机JSON对象,但是我不知道如何加载它们并使它们彼此关联。 / p>
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代码来解决此问题,那将对我有很大帮助!
答案 0 :(得分:0)
如果您从静态文件夹中加载了随机图片,那么您应该已经拥有该图片的文件名。基于此,您可以迭代问题对象的列表,并使用带有该文件名的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
,它似乎与显示名称相对应)。