程序尝试打印get_close_matches时获取TypeError

时间:2017-12-03 16:35:40

标签: python json dictionary difflib

我正在开发一个程序来搜索单词的含义(单词字典),如果我输入错误的单词拼写,它会纠正并建议正确的单词。但是,在进行相似性检查后,程序崩溃了。

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

导入json      

data = 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(“输入单词:”)翻译(单词)

我不确定我在这里缺少什么。任何帮助将不胜感激。

0 个答案:

没有答案