2016-09-12 3 views
3

У меня есть следующий json-файл, и мне нужен способ случайного выбора данных json и печати его значения.Как правильно выбрать данные json

JSON файла:

{ 
    "base": [{"1": "add"},{"2": "act"}], 
    "past": [{"add": "added"},{"act": "acted"}], 
    "past-participle": [{"add": "added"},{"act": "acted"}], 
    "s-es-ies": [{"add": "adds"},{"act": "acts"}], 
    "ing": [{"add": "adding"},{"act": "acting"}] 
} 

Пример

user_input = 'past' >> past 
code randomly selects 'add' or 'act' from past >> add 
prints out its value >> added 

ответ

2

Использование random.choice подачи, как выбор последовательности, содержащейся для выбранного key:

user_input = input('> ') 

> past 

list(choice(j[user_input]).values())[0] 
Out[177]: 'added' 

фактор его функции, чтобы сделать его более компактным:

def random_json_val(json_obj, k): 
    return list(choice(json_obj[k]).values())[0] 

Вызов он получает вас случайное значение для данного k:

>>> random_json_val(j, 'past') 
'added' 
>>> random_json_val(j, 'past') 
'acted' 
>>> random_json_val(j, 's-es-ies') 
'acts' 
+0

он должен быть 'список (random.choice (json_obj [ k]). values ​​()) [0] ' – Scott

+0

@ cricket_007 он не будет работать таким образом, я попробовал только сейчас – Scott

+0

@Scott извините, готовил. Да смешайте опечатку, просто «загрузите» объект 'json', где вам нужно, и передайте его функции вместе с пользовательским вводом, на котором используется ключ. –

Смежные вопросы