Проверка наличия/отсутствия ключа key в словаре dict в Python.

Исключение, которое выдается, когда ключ, указанный для доступа к элементу в коллекции, не совпадает ни с одним ключом в коллекции.

Определение

Исключение, которое выдается, когда ключ, указанный для доступа к элементу в коллекции, не совпадает ни с одним ключом в коллекции.

В этой статье

public ref class KeyNotFoundException : Exception public ref class KeyNotFoundException : SystemException public class KeyNotFoundException : Exception public class KeyNotFoundException : SystemException [System.Runtime.InteropServices.ComVisible(true)][System.Serializable]public class KeyNotFoundException : SystemException type KeyNotFoundException = class inherit Exception type KeyNotFoundException = class inherit SystemException type KeyNotFoundException = class inherit SystemException interface ISerializable [<System.Runtime.InteropServices.ComVisible(true)>][<System.Serializable>]type KeyNotFoundException = class inherit SystemException interface ISerializable Public Class KeyNotFoundExceptionInherits Exception Public Class KeyNotFoundExceptionInherits SystemException Наследование Наследование Атрибуты Реализации

KeyNotFoundExceptionИсключение возникает, когда операция пытается извлечь элемент из коллекции с помощью ключа, который не существует в этой коллекции.

KeyNotFoundException использует COR_E_KEYNOTFOUND HRESULT, имеющий значение 0x80131577.

Список начальных значений свойств для экземпляра KeyNotFoundException класса см. в разделе KeyNotFoundException конструкторы.

7 ответов

Лучший ответ

Код правильный и все предложения тоже должны работать. Просто удалил настройки “collation-server” и перезапустил сервер и все работает как положено.

enter image description here

2

Ramunas 31 Янв 2017 в 14:03

Потратив 5 часов на изучение того, как это исправить !!! .. я наконец-то понял это … все, что вам нужно сделать, это убедиться, что ваш ‘MySql.Data.dll’ обновлен! Вы можете скачать его где-нибудь. или вы можете найти его здесь C: Program Files (x86) MySQL MySQL Installer for Windows MySql.Data.dll ..: D

2

Marvin Nario Machitar 23 Июл 2018 в 08:29

Вместо этого утверждения:

using (MySqlCommand cmd = new MySqlCommand(“SELECT count(*) FROM goods”, conn))

Использование:

using (var cmd = new MySqlCommand(“SELECT COUNT(*) FROM goods”, conn))

А затем преобразовать его в значение int с помощью ExecuteScalar (). Что-то вроде этого:

int count = Convert.ToInt32(cmd.ExecuteScalar());

1

Busy Bee 30 Янв 2017 в 07:14

Я решил ту же ошибку, просто добавив кодировку в строку подключения:

Server=myServer;Port=3306;Database=myDB15;User ID=usr33;Password=usr33P;CharSet=utf8;

В моем случае я использую MySql Connector для .Net версии 6.9.3. подключить до 30 одинаковых баз данных с одинаковой структурой, одинаковым сопоставлением ( utf8_unicode_ci ) и различным содержимым таблицы.

Когда я запустил метод MySqlCommand.ExecuteReader () для выбора содержимого из таблицы пользователь , в некоторых базах данных (4 из 30) появилась та же ошибка Данный ключ был отсутствует в словаре .

4

Rafael Neto 4 Авг 2017 в 07:26

В моем случае я использую MySQL Connector NET 6.3.0 и решение, которое я получил, состоит в том, чтобы изменить ключ строки подключения
от

Server=127.0.0.1;Uid=root;Pwd=xxxx;Database=dbname;CharSet=utf8

к этому

server=127.0.0.1;user id=root;password=xxxx;database=dbname;charset=utf8;pooling=false

ibrahim saputra 5 Мар 2020 в 14:12

Попробуйте использовать

SELECT count(*) as count FROM goods

2

Ali Baig 30 Янв 2017 в 06:28

У меня была такая же проблема с использованием .net core 2.1, mysql, nhibernate.

После того как я добавил “Allow User Variables=True” в строку подключения в appsettings.json, моя проблема решена.

1

Musa Alp 19 Окт 2018 в 13:42

3 ответов

после долгого поиска ответа на этот вопрос я нашел решение здесь

Это на самом деле не обходной путь, но на самом деле решение, как избавиться от ошибки, в случае, если вы пропустили, чтобы удалить все соединения перед удалением поставщика:

изменить C:Users…AppDataRoamingMicrosoftVisualStudio10.0ServerExplorerDefaultView.SEView и удалите соединение с неправильным поставщиком вручную. Если вы не знаете, какие поставщика не удается, просто удалите файл 🙂

Если это не поможет попробовать удалить также C:Users – … ..AppDataLocalMicrosoftVisualStudio10.0

PS: сначала вы должны выйти из всех экземпляров visual studios или файлы будут воссозданы из памяти ..

вторая часть работала только для меня , удалив всю папку.

недавно я установил соединитель MySQL и открыл несколько экземпляров Visual Studio. После их закрытия я смог добавить соединение с проводником сервера.

добавив к тому, что сказал BastanteCaro, я открыл DefaultView.SEView файл на случай, если мне нужно будет пойти по этому пути. Когда я закрыл все и запустил новый экземпляр Visual Studio, Notepad++ сообщил, что файл изменился. Так что либо в файле было незафиксированное изменение, либо вид очистки / добавления был сделан при запуске.

У меня была такая же ошибка “ключ отсутствует в словаре” в VS 2010 при добавлении соединения с базой данных Postgresql, удаляя всю папку C:Users – … ..AppDataLocalMicrosoftVisualStudio10.0, как указал BastanteCaro решил проблему.

Вхождение ключа key в словарь Python.

Синтаксис:

# Наличие ключаkey in dictkey in dict.keys()# Отсутствие ключаkey not in dictkey not in dict.keys()

Параметры:

  • key – ключ словаря
  • dict – словарь

Возвращаемое значение:

  • bool

Описание:

Проверяет наличие ключа:

  • Операция key in dict вернет True, если у словаря dict ЕСТЬ ключ key, если НЕТ то False.
  • Операция key in dict.keys() так же вернет True, если в списке-представлении ключей dict.keys() присутствует ключ key, иначе False.

Проверяет отсутствие ключа:

  • Операция key not in dict вернет True, если у словаря dict НЕТ ключа key, если ЕСТЬ то False.
  • Операция key not in dict.keys() так же вернет True, если в списке-представлении ключей dict.keys() отсутствует ключ key, иначе False.

Примеры проверки наличия ключей в словаре:

>>> x = {‘one’: 0, ‘two’: 20, ‘three’: 3, ‘four’: 4}>>> keys = x.keys()>>> del x[‘three’]>>> ‘one’ in x# True>>> ‘one’ in keys# True>>> ‘three’ in x# False>>> ‘three’ in keys# False>>> ‘one’ not in x# False>>> ‘one’ not in keys# False>>> ‘three’ not in x# True>>> ‘three’ not in keys# True

Свойства

Data

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

(Унаследовано от Exception)

HelpLink

Получает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)

HResult

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

(Унаследовано от Exception)

InnerException

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

(Унаследовано от Exception)

Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)

Source

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

(Унаследовано от Exception)

StackTrace

Получает строковое представление непосредственных кадров в стеке вызова.

(Унаследовано от Exception)

TargetSite

Возвращает метод, создавший текущее исключение.

(Унаследовано от Exception)

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...