我有一个包含一些规则的 json 文件。这是一个例子:
[
{
"triggers": ["hello", "hey", "hi"],
"replies": [
{
"reply": "Hey there"
},
{
"reply": "Hola"
},
{
"reply": "Hello World"
}
]
},
{
"triggers": ["who are you", "your name"],
"replies": [
{
"reply": "some name"
},
{
"reply": "lorem ipsum"
}
]
}
]
我想要实现的是,如果用户查询文本,比方说“你好”,我希望脚本搜索 json 文件并查看查询是否存在于任何 trigger
数组中。如果它存在,那么我希望脚本从 replies
数组中选择一个随机 reply
。
我可以:
我不能:
我已经尝试了一切。如果可以,请帮助我。 感谢您的帮助。
最佳答案
我们可以使用random.choice(...)
从序列中选择一个随机元素。请注意,如果序列为空,它将引发错误。假设 s
是您的词典列表:
import random
def reply(greet):
for e in s:
if greet in e["triggers"]:
return random.choice(e["replies"])["reply"]
return ""
>>> reply("hey")
'Hey there'
>>> reply("hey")
'Hey there'
>>> reply("hey")
'Hello World'
>>> reply("hey")
'Hello World'
>>> reply("hey")
'Hola'
>>> reply("who are you")
'lorem ipsum'
>>> reply("who are you")
'some name'
>>> reply("not exist")
''
https://stackoverflow.com/questions/68133962/