Удаление значений QComboBox из JSON

Написал функцию удаления выбранных слов в QComboBox из файла JSON по индексу:

#Функция удаления слов из выпадающего списка
def wordDeleting(self):
    with open("spec.json", "r+") as file:
        loaded_file = json.load(file)
        back_word = loaded_file["specific"]
        back_word_2 = loaded_file["customers"]
        current_word = self.ui.comboBox.currentIndex()
        current_word_2 = self.ui.comboBox_2.currentText()
        if self.ui.checkBox.isChecked() == True:
            back_word.remove(current_word)
            json.dump(loaded_file, file)
        if self.ui.checkBox_2.isChecked() == True:
            back_word_2.remove(current_word_2)
            json.dump(loaded_file, file)
        self.ui.comboBox.addItems(back_word)
        self.ui.comboBox_2.addItems(back_word_2)

Мой расчет в том, что: Я выбираю какое либо слово в QComboBox, нажимаю галочку (CheckBox), далее QPushButton которая проверяет условия IsChecked, и если True- удаляет выбранное слово из JSON, и обновляет данные в QComboBox

Но получаю я обратное, код просто создает еще один ключ + список, но уже без выбранного слова, и я конечно вылетаю с ошибкой DataError.

Где я ошибаюсь?


Ответы (1 шт):

Автор решения: Валера Римский

Решено так:

    def wordDeleting(self):
        with open("spec.json", "r", encoding="utf-8") as file:
            loaded_file = json.load(file)
            current_word = self.ui.comboBox.currentText()
            current_word_2 = self.ui.comboBox_2.currentText()
            if self.ui.checkBox.isChecked():
                back_word = loaded_file["specific"]
                back_word.remove(current_word)
                with open ("spec.json", "w", encoding="utf-8") as file2:
                    json.dump(loaded_file, file2)
                self.ui.comboBox.clear()
                self.ui.comboBox.addItems(loaded_file["specific"])
            if self.ui.checkBox_2.isChecked():
                back_word_2 = loaded_file["customers"]
                back_word_2.remove(current_word_2)
                with open ("spec.json", "w", encoding="utf-8") as file3:
                    json.dump(loaded_file, file3)
                self.ui.comboBox_2.clear()
                self.ui.comboBox_2.addItems(loaded_file["customers"])
→ Ссылка