从使用python读取JSON文件中选择随机问候语

时间:2019-12-04 15:28:57

标签: json python-3.x

我有一个像这样的JSON文件,我必须对其进行随机化处理,以便每次输入任何内容时,它都会显示json文件中3中的任何随机输出。

{
    "1":"Welcome",
    "2":"Hello",
    "3":"Hi"
}

我阅读了JSON文件

greeting_template1=readjson(input_file_path+'greeting_template1.json')

and to randomise

greeting_template1 = random.choice(greeting_template1)

但是我得到了错误:

   greeting_template1 = random.choice(greeting_template1)
  File "C:\Users\\AppData\Local\Continuum\anaconda3\envs\lib\random.py", line 262, in choice
    return seq[i]
KeyError: 2

请突出显示我要去哪里

2 个答案:

答案 0 :(得分:1)

正如其他人指出的那样,您的JSON无效。 有效的json文件为:

{
    "1":"Welcome",
    "2":"Hello",
    "3":"Hi"
}

获取随机数的代码类似于:

import json
import random

with open('greeting_template1.json') as json_file:
    data = json.load(json_file)

random_greeting = data[random.choice(list(data))]

出现错误的原因是因为random.choice()需要一个序列作为参数。解析json给您一个不是序列的python字典。

答案 1 :(得分:0)

您的文档中包含3个JSON,而不是一个。关闭初始的{后,即为JSON。您需要重写为:

{
    "1":"Welcome",
    "2":"Hello",
    "3":"Hi"
}