[英]extracting data from json in python
import numpy
import random
import json
with open("intents.json") as file:
data = json.load(file)
for intent in data["intents"]:
for pattern in intent["patterns"]:
if "Hi" in intent["patterns"]:
w=intent["responses"]
else:
w=["Not found in pattern"]
print(random.choice(w))
json 链接获取自: https://techwithtim.net/wp-content/uploads/2019/05/json-file.zip
试试这个,当你的条件满足时,你的两个循环都应该中断。 您没有这样做,因此问题可能已经出现:
import random
import json
with open("intents.json") as file:
data = json.load(file)
for intent in data["intents"]:
for pattern in intent["patterns"]:
if "Hi" in intent["patterns"]:
w=intent["responses"]
flag = 0
break
else:
w=["Not found in pattern"]
if flag == 0:
break
print(random.choice(w))
我使用标志来表示内部循环已停止。
我想我在你的程序中发现了一个错误。 我相信它应该是这样的:
import random
import json
with open("intents.json") as file:
data = json.load(file)
for intent in data["intents"]:
for pattern in intent["patterns"]:
if "Hi" in pattern: ## Change 1 intent["patterns"] -- for --> pattern
w = pattern ## Change 2 intent["patterns"] -- for --> pattern
break ## Change 3 (Not sure about this one)
else:
w = ["Not found in pattern"]
print(random.choice(w))
我不确定,如果你的脚本中的break
应该是 go,我可能认为这是最合乎逻辑的,因为你已经找到了你的模式并且你正在循环结束时打印结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.