我有一个像这样的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
请突出显示我要去哪里
答案 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"
}