Рандомное значение из JSON в переменную(python)
Есть json файл:
{
"question": {
"main_question": "Сколько будет 2+2?",
'answers': {
"correct_option": "4",
"Optionl": "5",
"Option2": "6",
"Option3": "7"
}
}
}
, в котором есть столбец, вывод которого, нужно сделать в рандомную переменную,
Допустим, В должно быть равно = correct_option, остальное не важно. При другом вызове JSON, допустим A = должно быть correct_option соответственно.
Ответы (1 шт):
Автор решения: Wairua
→ Ссылка
В случае если мы не можем влиять на содержимое json файла и он дан нам как есть:
import json
from random import shuffle
if __name__ == '__main__':
with open('./task.json', 'r', encoding='utf-8') as j_file:
check = False
js = json.load(j_file)['question']
rnd_answ = list(js['answers'].values())
while not check:
shuffle(rnd_answ)
answer_dict = {num: answ for num, answ in enumerate(rnd_answ, 1)}
print(f'Задача : {js["main_question"]}:\n'
f'Вариант (1): {rnd_answ[0]}\nВариант (2): {rnd_answ[1]}\n'
f'Вариант (3): {rnd_answ[2]}\nВариант (4): {rnd_answ[3]}')
users_answer = input('Введите номер варианта с правильным ответом : ')
if int(users_answer) in answer_dict \
and answer_dict[int(users_answer)] == js['answers']['correct_option']:
print('Верное решение')
check = True
else:
print('Ответ не верный. Попробуйте еще раз')