如何随机选择json数据

时间:2016-09-12 21:09:59

标签: python json python-3.x

我有以下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

1 个答案:

答案 0 :(得分: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'