json - 从使用 python 读取 JSON 文件中选择随机问候语
问题描述
我有一个看起来像这样的 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
请强调我哪里出错了
解决方案
正如其他人指出的那样,您的 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 字典。
推荐阅读
- azure - 为什么我仍然在电子邮件签名中看到旧的 Azure AD B2C 租户名称?
- c++ - 函数模板不会在 VS2019 express 中编译
- php - 如何在 PHP 中将对象 json_encode 到数组中?
- javascript - React-native eas-build 在内部和生产分布上失败了 android/ios
- api-platform.com - 为什么在 Symfony 项目中使用“php bin/console cache:clear”命令时会收到与 PHP8 #[ApiResource()] 属性相关的错误?
- powershell - Windows上带有冒号的ffmpeg尾随选项
- android - 在后台线程中调用 createCaptureSession
- tensorflow - 使用 TF Lite Model Maker 创建的模型出现 TF.js 导入错误
- reactjs - React:如何使商店对重新加载无懈可击?
- amcharts4 - 你知道 amcharts 对数刻度的底吗?