Как рандомно распечатать значения сравнивая имена в json файле на python?

Всем привет.

Есть такой json файл:
JSON

{
"dictionary": [
{
"как тебя зовут?": [
"Мои тестовые данные",
"Тестовые данные"
],
"как ты поживаешь?": [
"Тестовые данные",
"Всё хорошо, надеюсь у тебя тоже всё хорошо :)"
],
"привет": [
"Привет, как тебя зовут?",
"Здравствуй! Поговорим?"
]
}
]
}


Предполагается, что когда пользователь будет вводить привет, ему будет выдаваться одно из предложенных значений в квадратных скобках.

Я набросал код, но он выводит все значения, которые есть в файле, а как мне сделать, чтобы он сравнивал имя с введенным и выдавал рандомно любое из значений?
import json
from random import choice

with open('keywords.json', encoding='utf-8') as json_file:
    data = json.load(json_file)


for item in data["dictionary"]:
  for item2 in item:
    for item3 in item[item2]:
      print(choice(item[item2]))


Не помню уже, разрешено ли, выложу ссылку на repl.it:
Ссылка
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Ну тогда уж следует делать значения dictionary не списком, а словарем, чтобы лучше ориентироваться.

{
   "dictionary": {
         "как тебя зовут?":[
            "Мои тестовые данные",
            "Тестовые данные"
         ],
         "как ты поживаешь?":[
            "Тестовые данные",
            "Всё хорошо, надеюсь у тебя тоже всё хорошо :)"
         ],
         "привет":[
            "Привет, как тебя зовут?",
            "Здравствуй! Поговорим?"
         ]
      }
}


Не понял, что в вашем коде, но допустим так:

from random import choice

# JSON в переменной data

message = 'Привет' # текст, который ввел пользователь

if message.lower() in data['dictionary']:
    print(choice(data['dictionary'][message.lower()]))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы