def pushButton_clicked(self): text = str(self.textEdit.toPlainText()) text = text.replace('true', 'True') text = text.replace('false', 'False') text = text.replace('null', 'None') data_structure = string_to_dict(text) if not data_structure: self.resultLineEdit.setText('Incorrect data structure') return key = str(self.finder.text()) if not key: self.resultLineEdit.setText('Incorrect key structure') return key_path = find_key(data_structure, key) if not key_path: self.resultLineEdit.setText('Key not found') return self.resultLineEdit.setText(key_path)
def test_no_key_in_dict(self): data_structure = {'k': 'v'} k = 'a' self.assertEqual(None, find_key(data_structure, k))
def test_key_in_list_nested_dict(self): data_structure = {'K': [{'k1': 'v'}, {'k': 'v1'}, {'k2': 'v1'}]} k = 'k' self.assertEqual("['K'][1]['k']", find_key(data_structure, k))
def test_key_in_nested_dict(self): data_structure = {'K': {'k': 'v'}} k = 'k' self.assertEqual("['K']['k']", find_key(data_structure, k))
def test_key_in_tuple(self): data_structure = ({'k1': 'v'}, {'k': 'v1'}, {'k2': 'v1'}) k = 'k' self.assertEqual("[1]['k']", find_key(data_structure, k))
def test_key_in_list(self): data_structure = [{'k1': 'v'}, {'k1': 'v1'}, {'k': 'v1'}] k = 'k' self.assertEqual("[2]['k']", find_key(data_structure, k))