我正在开发一个程序来搜索单词的含义(单词字典),如果我输入错误的单词拼写,它会纠正并建议正确的单词。但是,在进行相似性检查后,程序崩溃了。
data.json是python词典文件,包含单词作为键及其定义为值。
以下是我的代码:
import json
from difflib import get_close_matches
data = json.load(open("data.json"))
def func(key):
key= key.lower()
if key in data:
print(data[key])
elif len(get_close_matches(key,data.keys())) > 0:
ans = input("Did you mean %s instead?" % get_close_matches(key, data.keys())[0])
if ans == "yes":
print([data(get_close_matches(key, data.keys()))[0]])
else:
print("This word does not exist")
else:
print("This word does not exist")
key = input("Enter key:")
func(key)
以下是运行代码时的输出:
Enter key:precipitattion
Did you mean precipitation instead?yes
Traceback (most recent call last):
File "C:/Users/DELL-7450/PycharmProjects/Plural bo Minalowich/Test.py", line 24, in <module>
func(key)
File "C:/Users/DELL-7450/PycharmProjects/Plural bo Minalowich/Test.py", line 15, in func
print([data(get_close_matches(key, data.keys()))[0]])
TypeError: 'dict' object is not callable
Process finished with exit code 1
但是,下面是一个类似的代码,可以使用,不知道我缺少什么:
从difflib import get_close_matches
导入jsondata = json.load(open(“data.json”))
def翻译(w): w = w.lower() 如果是数据: 返回数据[w] elif len(get_close_matches(w,data.keys()))&gt; 0: yn =输入(“你的意思是%s代替吗?如果是,则输入Y,如果不是则输入N:”%get_close_matches(w,data.keys())[0]) 如果yn ==“Y”: 返回数据[get_close_matches(w,data.keys())[0]] elif yn ==“N”: 返回“这个词不存在。请仔细检查一下。” 其他: 返回“我们不理解您的参赛作品。” 其他: 返回“这个词不存在。请仔细检查一下。”
word = input(“输入单词:”)翻译(单词)
我不确定我在这里缺少什么。任何帮助将不胜感激。