0
   def find_cell_en(self, query_word):
    result_list = dict()
    result_list.clear()
    for row in self.reader:
        en_name = row[0]
        word_type = row[1]
        key_entry = en_name + '#' + word_type
        je_name = row[2]
        # If the searched query is in the English key
        if query_word.lower() in key_entry.lower():
            if key_entry in result_list:
                if type(result_list[key_entry]) != list:
                    result_list[key_entry] = [result_list[key_entry]]
                result_list[key_entry].append(je_name)
            else:
                result_list[key_entry] = je_name
    return result_list

Background on project: It's a simple dictionary programme for a local language.

Dictionary iterates through rows of a csv file, which contain the English term, the word class and the target language term.

This function is called when the search function is called, to return a dictionary containing entries which match the searched term.

The search box works with a Tkinter entry and a button. When the button is pressed, it calls a def search(), which then gets the search term and uses the find_cell_en function to get the dictionary of items (result_list).

It works the first time it's used, returning the dictionary properly. However, if I then clear the search box and do a new search, it does successfully get to the find_cell_en function, but then skips the for loop (thereby not returning result_list)

Any help would be greatly appreciated

Bryan Oakley
  • 370,779
  • 53
  • 539
  • 685

0 Answers0