[{"data":1,"prerenderedAt":2027},["ShallowReactive",2],{"doc-\u002Fhow-to\u002Fhow-to-check-if-a-key-exists-in-a-dictionary-in-python":3},{"id":4,"title":5,"body":6,"description":2020,"extension":2021,"meta":2022,"navigation":94,"path":2023,"seo":2024,"stem":2025,"__hash__":2026},"content\u002Fhow-to\u002Fhow-to-check-if-a-key-exists-in-a-dictionary-in-python.md","How to Check if a Key Exists in a Dictionary in Python",{"type":7,"value":8,"toc":1985},"minimark",[9,13,17,22,162,169,173,201,207,210,225,228,242,248,324,330,339,342,425,429,438,447,455,461,529,533,549,552,640,644,685,692,698,704,711,802,806,821,824,911,915,924,929,944,951,956,969,1060,1064,1077,1083,1099,1104,1185,1189,1204,1211,1214,1298,1302,1317,1326,1332,1344,1348,1351,1356,1362,1443,1447,1459,1465,1494,1504,1507,1579,1584,1591,1594,1645,1654,1661,1664,1715,1724,1728,1731,1753,1757,1760,1853,1856,1890,1894,1901,1904,1908,1914,1923,1931,1941,1947,1951,1981],[10,11,5],"h1",{"id":12},"how-to-check-if-a-key-exists-in-a-dictionary-in-python",[14,15,16],"p",{},"Learn the simplest ways to check whether a dictionary contains a key in Python. This page focuses on practical lookup patterns beginners use most often.",[18,19,21],"h2",{"id":20},"quick-answer","Quick answer",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","user = {\"name\": \"Sam\", \"age\": 25}\n\nif \"name\" in user:\n    print(\"Key exists\")\nelse:\n    print(\"Key does not exist\")\n","python","",[30,31,32,89,96,118,138,146],"code",{"__ignoreMap":28},[33,34,37,41,45,49,53,57,59,62,65,68,70,73,75,78,80,82,86],"span",{"class":35,"line":36},"line",1,[33,38,40],{"class":39},"su5hD","user ",[33,42,44],{"class":43},"smGrS","=",[33,46,48],{"class":47},"sP7_E"," {",[33,50,52],{"class":51},"sjJ54","\"",[33,54,56],{"class":55},"s_sjI","name",[33,58,52],{"class":51},[33,60,61],{"class":47},":",[33,63,64],{"class":51}," \"",[33,66,67],{"class":55},"Sam",[33,69,52],{"class":51},[33,71,72],{"class":47},",",[33,74,64],{"class":51},[33,76,77],{"class":55},"age",[33,79,52],{"class":51},[33,81,61],{"class":47},[33,83,85],{"class":84},"srdBf"," 25",[33,87,88],{"class":47},"}\n",[33,90,92],{"class":35,"line":91},2,[33,93,95],{"emptyLinePlaceholder":94},true,"\n",[33,97,99,103,105,107,109,112,115],{"class":35,"line":98},3,[33,100,102],{"class":101},"sVHd0","if",[33,104,64],{"class":51},[33,106,56],{"class":55},[33,108,52],{"class":51},[33,110,111],{"class":43}," in",[33,113,114],{"class":39}," user",[33,116,117],{"class":47},":\n",[33,119,121,125,128,130,133,135],{"class":35,"line":120},4,[33,122,124],{"class":123},"sptTA","    print",[33,126,127],{"class":47},"(",[33,129,52],{"class":51},[33,131,132],{"class":55},"Key exists",[33,134,52],{"class":51},[33,136,137],{"class":47},")\n",[33,139,141,144],{"class":35,"line":140},5,[33,142,143],{"class":101},"else",[33,145,117],{"class":47},[33,147,149,151,153,155,158,160],{"class":35,"line":148},6,[33,150,124],{"class":123},[33,152,127],{"class":47},[33,154,52],{"class":51},[33,156,157],{"class":55},"Key does not exist",[33,159,52],{"class":51},[33,161,137],{"class":47},[14,163,164,165,168],{},"Use the ",[30,166,167],{},"in"," operator for the clearest and most common solution.",[18,170,172],{"id":171},"what-this-page-helps-you-do","What this page helps you do",[174,175,176,180,187],"ul",{},[177,178,179],"li",{},"Check whether a dictionary has a specific key",[177,181,182,183,186],{},"Avoid ",[30,184,185],{},"KeyError"," when reading dictionary values",[177,188,189,190,192,193,196,197,200],{},"Choose between ",[30,191,167],{},", ",[30,194,195],{},"get()",", and ",[30,198,199],{},"try-except"," for different situations",[18,202,204,205],{"id":203},"best-method-for-most-cases-use-in","Best method for most cases: use ",[30,206,167],{},[14,208,209],{},"In Python, the best way to check whether a dictionary contains a key is:",[23,211,213],{"className":25,"code":212,"language":27,"meta":28,"style":28},"key in my_dict\n",[30,214,215],{"__ignoreMap":28},[33,216,217,220,222],{"class":35,"line":36},[33,218,219],{"class":39},"key ",[33,221,167],{"class":43},[33,223,224],{"class":39}," my_dict\n",[14,226,227],{},"It returns:",[174,229,230,236],{},[177,231,232,235],{},[30,233,234],{},"True"," if the key exists",[177,237,238,241],{},[30,239,240],{},"False"," if the key does not exist",[14,243,244,245,247],{},"This works especially well inside an ",[30,246,102],{}," statement.",[23,249,251],{"className":25,"code":250,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"age\": 25}\n\nif \"age\" in user:\n    print(\"The age key exists\")\n",[30,252,253,289,293,309],{"__ignoreMap":28},[33,254,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287],{"class":35,"line":36},[33,256,40],{"class":39},[33,258,44],{"class":43},[33,260,48],{"class":47},[33,262,52],{"class":51},[33,264,56],{"class":55},[33,266,52],{"class":51},[33,268,61],{"class":47},[33,270,64],{"class":51},[33,272,67],{"class":55},[33,274,52],{"class":51},[33,276,72],{"class":47},[33,278,64],{"class":51},[33,280,77],{"class":55},[33,282,52],{"class":51},[33,284,61],{"class":47},[33,286,85],{"class":84},[33,288,88],{"class":47},[33,290,291],{"class":35,"line":91},[33,292,95],{"emptyLinePlaceholder":94},[33,294,295,297,299,301,303,305,307],{"class":35,"line":98},[33,296,102],{"class":101},[33,298,64],{"class":51},[33,300,77],{"class":55},[33,302,52],{"class":51},[33,304,111],{"class":43},[33,306,114],{"class":39},[33,308,117],{"class":47},[33,310,311,313,315,317,320,322],{"class":35,"line":120},[33,312,124],{"class":123},[33,314,127],{"class":47},[33,316,52],{"class":51},[33,318,319],{"class":55},"The age key exists",[33,321,52],{"class":51},[33,323,137],{"class":47},[14,325,326],{},[327,328,329],"strong",{},"Output:",[23,331,333],{"className":25,"code":332,"language":27,"meta":28,"style":28},"The age key exists\n",[30,334,335],{"__ignoreMap":28},[33,336,337],{"class":35,"line":36},[33,338,332],{"class":39},[14,340,341],{},"You can then safely read the value after checking:",[23,343,345],{"className":25,"code":344,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"age\": 25}\n\nif \"name\" in user:\n    print(user[\"name\"])\n",[30,346,347,383,387,403],{"__ignoreMap":28},[33,348,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381],{"class":35,"line":36},[33,350,40],{"class":39},[33,352,44],{"class":43},[33,354,48],{"class":47},[33,356,52],{"class":51},[33,358,56],{"class":55},[33,360,52],{"class":51},[33,362,61],{"class":47},[33,364,64],{"class":51},[33,366,67],{"class":55},[33,368,52],{"class":51},[33,370,72],{"class":47},[33,372,64],{"class":51},[33,374,77],{"class":55},[33,376,52],{"class":51},[33,378,61],{"class":47},[33,380,85],{"class":84},[33,382,88],{"class":47},[33,384,385],{"class":35,"line":91},[33,386,95],{"emptyLinePlaceholder":94},[33,388,389,391,393,395,397,399,401],{"class":35,"line":98},[33,390,102],{"class":101},[33,392,64],{"class":51},[33,394,56],{"class":55},[33,396,52],{"class":51},[33,398,111],{"class":43},[33,400,114],{"class":39},[33,402,117],{"class":47},[33,404,405,407,409,413,416,418,420,422],{"class":35,"line":120},[33,406,124],{"class":123},[33,408,127],{"class":47},[33,410,412],{"class":411},"slqww","user",[33,414,415],{"class":47},"[",[33,417,52],{"class":51},[33,419,56],{"class":55},[33,421,52],{"class":51},[33,423,424],{"class":47},"])\n",[14,426,427],{},[327,428,329],{},[23,430,432],{"className":25,"code":431,"language":27,"meta":28,"style":28},"Sam\n",[30,433,434],{"__ignoreMap":28},[33,435,436],{"class":35,"line":36},[33,437,431],{"class":39},[14,439,440,441,446],{},"If you are still learning how dictionaries work, see ",[442,443,445],"a",{"href":444},"\u002Flearn\u002Fpython-dictionaries-explained","Python dictionaries explained",".",[18,448,450,451,454],{"id":449},"using-not-in-for-missing-keys","Using ",[30,452,453],{},"not in"," for missing keys",[14,456,457,458,460],{},"Use ",[30,459,453],{}," when you want to handle the missing case first.",[23,462,464],{"className":25,"code":463,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\"}\n\nif \"email\" not in user:\n    print(\"Email is missing\")\n",[30,465,466,490,494,514],{"__ignoreMap":28},[33,467,468,470,472,474,476,478,480,482,484,486,488],{"class":35,"line":36},[33,469,40],{"class":39},[33,471,44],{"class":43},[33,473,48],{"class":47},[33,475,52],{"class":51},[33,477,56],{"class":55},[33,479,52],{"class":51},[33,481,61],{"class":47},[33,483,64],{"class":51},[33,485,67],{"class":55},[33,487,52],{"class":51},[33,489,88],{"class":47},[33,491,492],{"class":35,"line":91},[33,493,95],{"emptyLinePlaceholder":94},[33,495,496,498,500,503,505,508,510,512],{"class":35,"line":98},[33,497,102],{"class":101},[33,499,64],{"class":51},[33,501,502],{"class":55},"email",[33,504,52],{"class":51},[33,506,507],{"class":43}," not",[33,509,111],{"class":43},[33,511,114],{"class":39},[33,513,117],{"class":47},[33,515,516,518,520,522,525,527],{"class":35,"line":120},[33,517,124],{"class":123},[33,519,127],{"class":47},[33,521,52],{"class":51},[33,523,524],{"class":55},"Email is missing",[33,526,52],{"class":51},[33,528,137],{"class":47},[14,530,531],{},[327,532,329],{},[23,534,536],{"className":25,"code":535,"language":27,"meta":28,"style":28},"Email is missing\n",[30,537,538],{"__ignoreMap":28},[33,539,540,543,546],{"class":35,"line":36},[33,541,542],{"class":39},"Email ",[33,544,545],{"class":43},"is",[33,547,548],{"class":39}," missing\n",[14,550,551],{},"This is useful when validating data before adding or updating it.",[23,553,555],{"className":25,"code":554,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\"}\n\nif \"age\" not in user:\n    user[\"age\"] = 0\n\nprint(user)\n",[30,556,557,581,585,603,625,629],{"__ignoreMap":28},[33,558,559,561,563,565,567,569,571,573,575,577,579],{"class":35,"line":36},[33,560,40],{"class":39},[33,562,44],{"class":43},[33,564,48],{"class":47},[33,566,52],{"class":51},[33,568,56],{"class":55},[33,570,52],{"class":51},[33,572,61],{"class":47},[33,574,64],{"class":51},[33,576,67],{"class":55},[33,578,52],{"class":51},[33,580,88],{"class":47},[33,582,583],{"class":35,"line":91},[33,584,95],{"emptyLinePlaceholder":94},[33,586,587,589,591,593,595,597,599,601],{"class":35,"line":98},[33,588,102],{"class":101},[33,590,64],{"class":51},[33,592,77],{"class":55},[33,594,52],{"class":51},[33,596,507],{"class":43},[33,598,111],{"class":43},[33,600,114],{"class":39},[33,602,117],{"class":47},[33,604,605,608,610,612,614,616,619,622],{"class":35,"line":120},[33,606,607],{"class":39},"    user",[33,609,415],{"class":47},[33,611,52],{"class":51},[33,613,77],{"class":55},[33,615,52],{"class":51},[33,617,618],{"class":47},"]",[33,620,621],{"class":43}," =",[33,623,624],{"class":84}," 0\n",[33,626,627],{"class":35,"line":140},[33,628,95],{"emptyLinePlaceholder":94},[33,630,631,634,636,638],{"class":35,"line":148},[33,632,633],{"class":123},"print",[33,635,127],{"class":47},[33,637,412],{"class":411},[33,639,137],{"class":47},[14,641,642],{},[327,643,329],{},[23,645,647],{"className":25,"code":646,"language":27,"meta":28,"style":28},"{'name': 'Sam', 'age': 0}\n",[30,648,649],{"__ignoreMap":28},[33,650,651,654,657,659,661,663,666,668,670,672,674,676,678,680,683],{"class":35,"line":36},[33,652,653],{"class":47},"{",[33,655,656],{"class":51},"'",[33,658,56],{"class":55},[33,660,656],{"class":51},[33,662,61],{"class":47},[33,664,665],{"class":51}," '",[33,667,67],{"class":55},[33,669,656],{"class":51},[33,671,72],{"class":47},[33,673,665],{"class":51},[33,675,77],{"class":55},[33,677,656],{"class":51},[33,679,61],{"class":47},[33,681,682],{"class":84}," 0",[33,684,88],{"class":47},[14,686,687,688,446],{},"This style is often easy to read in guard clauses because it handles the problem early. If you want to update dictionaries, see ",[442,689,691],{"href":690},"\u002Fhow-to\u002Fhow-to-add-a-key-to-a-dictionary-in-python\u002F","how to add a key to a dictionary in Python",[18,693,457,695,697],{"id":694},"use-get-when-you-also-want-the-value",[30,696,195],{}," when you also want the value",[14,699,700,701,703],{},"The ",[30,702,195],{}," method returns the value for a key if it exists.",[14,705,706,707,710],{},"If the key is missing, it returns ",[30,708,709],{},"None"," by default instead of raising an error.",[23,712,714],{"className":25,"code":713,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"age\": 25}\n\nprint(user.get(\"name\"))\nprint(user.get(\"email\"))\n",[30,715,716,752,756,780],{"__ignoreMap":28},[33,717,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750],{"class":35,"line":36},[33,719,40],{"class":39},[33,721,44],{"class":43},[33,723,48],{"class":47},[33,725,52],{"class":51},[33,727,56],{"class":55},[33,729,52],{"class":51},[33,731,61],{"class":47},[33,733,64],{"class":51},[33,735,67],{"class":55},[33,737,52],{"class":51},[33,739,72],{"class":47},[33,741,64],{"class":51},[33,743,77],{"class":55},[33,745,52],{"class":51},[33,747,61],{"class":47},[33,749,85],{"class":84},[33,751,88],{"class":47},[33,753,754],{"class":35,"line":91},[33,755,95],{"emptyLinePlaceholder":94},[33,757,758,760,762,764,766,769,771,773,775,777],{"class":35,"line":98},[33,759,633],{"class":123},[33,761,127],{"class":47},[33,763,412],{"class":411},[33,765,446],{"class":47},[33,767,768],{"class":411},"get",[33,770,127],{"class":47},[33,772,52],{"class":51},[33,774,56],{"class":55},[33,776,52],{"class":51},[33,778,779],{"class":47},"))\n",[33,781,782,784,786,788,790,792,794,796,798,800],{"class":35,"line":120},[33,783,633],{"class":123},[33,785,127],{"class":47},[33,787,412],{"class":411},[33,789,446],{"class":47},[33,791,768],{"class":411},[33,793,127],{"class":47},[33,795,52],{"class":51},[33,797,502],{"class":55},[33,799,52],{"class":51},[33,801,779],{"class":47},[14,803,804],{},[327,805,329],{},[23,807,809],{"className":25,"code":808,"language":27,"meta":28,"style":28},"Sam\nNone\n",[30,810,811,815],{"__ignoreMap":28},[33,812,813],{"class":35,"line":36},[33,814,431],{"class":39},[33,816,817],{"class":35,"line":91},[33,818,820],{"class":819},"s39Yj","None\n",[14,822,823],{},"You can also provide your own default value:",[23,825,827],{"className":25,"code":826,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"age\": 25}\n\nemail = user.get(\"email\", \"No email found\")\nprint(email)\n",[30,828,829,865,869,901],{"__ignoreMap":28},[33,830,831,833,835,837,839,841,843,845,847,849,851,853,855,857,859,861,863],{"class":35,"line":36},[33,832,40],{"class":39},[33,834,44],{"class":43},[33,836,48],{"class":47},[33,838,52],{"class":51},[33,840,56],{"class":55},[33,842,52],{"class":51},[33,844,61],{"class":47},[33,846,64],{"class":51},[33,848,67],{"class":55},[33,850,52],{"class":51},[33,852,72],{"class":47},[33,854,64],{"class":51},[33,856,77],{"class":55},[33,858,52],{"class":51},[33,860,61],{"class":47},[33,862,85],{"class":84},[33,864,88],{"class":47},[33,866,867],{"class":35,"line":91},[33,868,95],{"emptyLinePlaceholder":94},[33,870,871,874,876,878,880,882,884,886,888,890,892,894,897,899],{"class":35,"line":98},[33,872,873],{"class":39},"email ",[33,875,44],{"class":43},[33,877,114],{"class":39},[33,879,446],{"class":47},[33,881,768],{"class":411},[33,883,127],{"class":47},[33,885,52],{"class":51},[33,887,502],{"class":55},[33,889,52],{"class":51},[33,891,72],{"class":47},[33,893,64],{"class":51},[33,895,896],{"class":55},"No email found",[33,898,52],{"class":51},[33,900,137],{"class":47},[33,902,903,905,907,909],{"class":35,"line":120},[33,904,633],{"class":123},[33,906,127],{"class":47},[33,908,502],{"class":411},[33,910,137],{"class":47},[14,912,913],{},[327,914,329],{},[23,916,918],{"className":25,"code":917,"language":27,"meta":28,"style":28},"No email found\n",[30,919,920],{"__ignoreMap":28},[33,921,922],{"class":35,"line":36},[33,923,917],{"class":39},[14,925,926,927,446],{},"This is useful when you want to continue safely without getting a ",[30,928,185],{},[14,930,931,932,939,940,446],{},"If you want a full explanation of this method, see the ",[442,933,935,936,938],{"href":934},"\u002Freference\u002Fpython-dictionary-get-method","Python dictionary ",[30,937,195],{}," method",". If your goal is reading values safely, you may also want ",[442,941,943],{"href":942},"\u002Fhow-to\u002Fhow-to-access-values-in-a-dictionary-in-python\u002F","how to access values in a dictionary in Python",[18,945,947,948,950],{"id":946},"know-the-difference-between-a-missing-key-and-a-none-value","Know the difference between a missing key and a ",[30,949,709],{}," value",[14,952,953,954,446],{},"A key can exist in a dictionary and still store ",[30,955,709],{},[14,957,958,959,961,962,964,965,968],{},"That means ",[30,960,195],{}," returning ",[30,963,709],{}," does ",[327,966,967],{},"not"," always mean the key is missing.",[23,970,972],{"className":25,"code":971,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"email\": None}\n\nprint(user.get(\"email\"))\nprint(user.get(\"phone\"))\n",[30,973,974,1011,1015,1037],{"__ignoreMap":28},[33,975,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1009],{"class":35,"line":36},[33,977,40],{"class":39},[33,979,44],{"class":43},[33,981,48],{"class":47},[33,983,52],{"class":51},[33,985,56],{"class":55},[33,987,52],{"class":51},[33,989,61],{"class":47},[33,991,64],{"class":51},[33,993,67],{"class":55},[33,995,52],{"class":51},[33,997,72],{"class":47},[33,999,64],{"class":51},[33,1001,502],{"class":55},[33,1003,52],{"class":51},[33,1005,61],{"class":47},[33,1007,1008],{"class":819}," None",[33,1010,88],{"class":47},[33,1012,1013],{"class":35,"line":91},[33,1014,95],{"emptyLinePlaceholder":94},[33,1016,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035],{"class":35,"line":98},[33,1018,633],{"class":123},[33,1020,127],{"class":47},[33,1022,412],{"class":411},[33,1024,446],{"class":47},[33,1026,768],{"class":411},[33,1028,127],{"class":47},[33,1030,52],{"class":51},[33,1032,502],{"class":55},[33,1034,52],{"class":51},[33,1036,779],{"class":47},[33,1038,1039,1041,1043,1045,1047,1049,1051,1053,1056,1058],{"class":35,"line":120},[33,1040,633],{"class":123},[33,1042,127],{"class":47},[33,1044,412],{"class":411},[33,1046,446],{"class":47},[33,1048,768],{"class":411},[33,1050,127],{"class":47},[33,1052,52],{"class":51},[33,1054,1055],{"class":55},"phone",[33,1057,52],{"class":51},[33,1059,779],{"class":47},[14,1061,1062],{},[327,1063,329],{},[23,1065,1067],{"className":25,"code":1066,"language":27,"meta":28,"style":28},"None\nNone\n",[30,1068,1069,1073],{"__ignoreMap":28},[33,1070,1071],{"class":35,"line":36},[33,1072,820],{"class":819},[33,1074,1075],{"class":35,"line":91},[33,1076,820],{"class":819},[14,1078,1079,1080,1082],{},"Both lines return ",[30,1081,709],{},", but they mean different things:",[174,1084,1085,1093],{},[177,1086,1087,1090,1091],{},[30,1088,1089],{},"\"email\""," exists and its value is ",[30,1092,709],{},[177,1094,1095,1098],{},[30,1096,1097],{},"\"phone\""," does not exist at all",[14,1100,1101,1102,61],{},"If you need to confirm that the key itself exists, use ",[30,1103,167],{},[23,1105,1107],{"className":25,"code":1106,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"email\": None}\n\nprint(\"email\" in user)\nprint(\"phone\" in user)\n",[30,1108,1109,1145,1149,1167],{"__ignoreMap":28},[33,1110,1111,1113,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143],{"class":35,"line":36},[33,1112,40],{"class":39},[33,1114,44],{"class":43},[33,1116,48],{"class":47},[33,1118,52],{"class":51},[33,1120,56],{"class":55},[33,1122,52],{"class":51},[33,1124,61],{"class":47},[33,1126,64],{"class":51},[33,1128,67],{"class":55},[33,1130,52],{"class":51},[33,1132,72],{"class":47},[33,1134,64],{"class":51},[33,1136,502],{"class":55},[33,1138,52],{"class":51},[33,1140,61],{"class":47},[33,1142,1008],{"class":819},[33,1144,88],{"class":47},[33,1146,1147],{"class":35,"line":91},[33,1148,95],{"emptyLinePlaceholder":94},[33,1150,1151,1153,1155,1157,1159,1161,1163,1165],{"class":35,"line":98},[33,1152,633],{"class":123},[33,1154,127],{"class":47},[33,1156,52],{"class":51},[33,1158,502],{"class":55},[33,1160,52],{"class":51},[33,1162,111],{"class":101},[33,1164,114],{"class":411},[33,1166,137],{"class":47},[33,1168,1169,1171,1173,1175,1177,1179,1181,1183],{"class":35,"line":120},[33,1170,633],{"class":123},[33,1172,127],{"class":47},[33,1174,52],{"class":51},[33,1176,1055],{"class":55},[33,1178,52],{"class":51},[33,1180,111],{"class":101},[33,1182,114],{"class":411},[33,1184,137],{"class":47},[14,1186,1187],{},[327,1188,329],{},[23,1190,1192],{"className":25,"code":1191,"language":27,"meta":28,"style":28},"True\nFalse\n",[30,1193,1194,1199],{"__ignoreMap":28},[33,1195,1196],{"class":35,"line":36},[33,1197,1198],{"class":819},"True\n",[33,1200,1201],{"class":35,"line":91},[33,1202,1203],{"class":819},"False\n",[18,1205,1207,1208,1210],{"id":1206},"when-try-except-makes-sense","When ",[30,1209,199],{}," makes sense",[14,1212,1213],{},"You can also access the key directly and catch the error if it is missing.",[23,1215,1217],{"className":25,"code":1216,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\"}\n\ntry:\n    print(user[\"email\"])\nexcept KeyError:\n    print(\"The key does not exist\")\n",[30,1218,1219,1243,1247,1254,1272,1283],{"__ignoreMap":28},[33,1220,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241],{"class":35,"line":36},[33,1222,40],{"class":39},[33,1224,44],{"class":43},[33,1226,48],{"class":47},[33,1228,52],{"class":51},[33,1230,56],{"class":55},[33,1232,52],{"class":51},[33,1234,61],{"class":47},[33,1236,64],{"class":51},[33,1238,67],{"class":55},[33,1240,52],{"class":51},[33,1242,88],{"class":47},[33,1244,1245],{"class":35,"line":91},[33,1246,95],{"emptyLinePlaceholder":94},[33,1248,1249,1252],{"class":35,"line":98},[33,1250,1251],{"class":101},"try",[33,1253,117],{"class":47},[33,1255,1256,1258,1260,1262,1264,1266,1268,1270],{"class":35,"line":120},[33,1257,124],{"class":123},[33,1259,127],{"class":47},[33,1261,412],{"class":411},[33,1263,415],{"class":47},[33,1265,52],{"class":51},[33,1267,502],{"class":55},[33,1269,52],{"class":51},[33,1271,424],{"class":47},[33,1273,1274,1277,1281],{"class":35,"line":140},[33,1275,1276],{"class":101},"except",[33,1278,1280],{"class":1279},"sZMiF"," KeyError",[33,1282,117],{"class":47},[33,1284,1285,1287,1289,1291,1294,1296],{"class":35,"line":148},[33,1286,124],{"class":123},[33,1288,127],{"class":47},[33,1290,52],{"class":51},[33,1292,1293],{"class":55},"The key does not exist",[33,1295,52],{"class":51},[33,1297,137],{"class":47},[14,1299,1300],{},[327,1301,329],{},[23,1303,1305],{"className":25,"code":1304,"language":27,"meta":28,"style":28},"The key does not exist\n",[30,1306,1307],{"__ignoreMap":28},[33,1308,1309,1312,1314],{"class":35,"line":36},[33,1310,1311],{"class":39},"The key does ",[33,1313,967],{"class":43},[33,1315,1316],{"class":39}," exist\n",[14,1318,1319,1320,1323,1324,446],{},"This works because reading a missing key with ",[30,1321,1322],{},"my_dict[key]"," raises a ",[30,1325,185],{},[14,1327,1328,1329,1331],{},"Use this approach when you want to try the access directly and handle failure. For most beginners, checking with ",[30,1330,167],{}," first is usually easier to read.",[14,1333,1334,1335,1339,1340,446],{},"If you are seeing this error already, read ",[442,1336,1338],{"href":1337},"\u002Ferrors\u002Fkeyerror-in-python-causes-and-fixes","KeyError in Python: causes and fixes"," or ",[442,1341,1343],{"href":1342},"\u002Ferrors\u002Fkeyerror-when-accessing-dictionary-values-fix","KeyError when accessing dictionary values",[18,1345,1347],{"id":1346},"common-beginner-mistakes","Common beginner mistakes",[14,1349,1350],{},"Here are some common problems when checking dictionary keys.",[1352,1353,1355],"h3",{"id":1354},"_1-checking-values-instead-of-keys-by-accident","1. Checking values instead of keys by accident",[14,1357,1358,1359,1361],{},"In a dictionary, ",[30,1360,167],{}," checks keys, not values.",[23,1363,1365],{"className":25,"code":1364,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\", \"age\": 25}\n\nprint(\"name\" in user)\nprint(\"Sam\" in user)\n",[30,1366,1367,1403,1407,1425],{"__ignoreMap":28},[33,1368,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401],{"class":35,"line":36},[33,1370,40],{"class":39},[33,1372,44],{"class":43},[33,1374,48],{"class":47},[33,1376,52],{"class":51},[33,1378,56],{"class":55},[33,1380,52],{"class":51},[33,1382,61],{"class":47},[33,1384,64],{"class":51},[33,1386,67],{"class":55},[33,1388,52],{"class":51},[33,1390,72],{"class":47},[33,1392,64],{"class":51},[33,1394,77],{"class":55},[33,1396,52],{"class":51},[33,1398,61],{"class":47},[33,1400,85],{"class":84},[33,1402,88],{"class":47},[33,1404,1405],{"class":35,"line":91},[33,1406,95],{"emptyLinePlaceholder":94},[33,1408,1409,1411,1413,1415,1417,1419,1421,1423],{"class":35,"line":98},[33,1410,633],{"class":123},[33,1412,127],{"class":47},[33,1414,52],{"class":51},[33,1416,56],{"class":55},[33,1418,52],{"class":51},[33,1420,111],{"class":101},[33,1422,114],{"class":411},[33,1424,137],{"class":47},[33,1426,1427,1429,1431,1433,1435,1437,1439,1441],{"class":35,"line":120},[33,1428,633],{"class":123},[33,1430,127],{"class":47},[33,1432,52],{"class":51},[33,1434,67],{"class":55},[33,1436,52],{"class":51},[33,1438,111],{"class":101},[33,1440,114],{"class":411},[33,1442,137],{"class":47},[14,1444,1445],{},[327,1446,329],{},[23,1448,1449],{"className":25,"code":1191,"language":27,"meta":28,"style":28},[30,1450,1451,1455],{"__ignoreMap":28},[33,1452,1453],{"class":35,"line":36},[33,1454,1198],{"class":819},[33,1456,1457],{"class":35,"line":91},[33,1458,1203],{"class":819},[14,1460,1461,1462,61],{},"If you want to check values, use ",[30,1463,1464],{},".values()",[23,1466,1468],{"className":25,"code":1467,"language":27,"meta":28,"style":28},"print(\"Sam\" in user.values())\n",[30,1469,1470],{"__ignoreMap":28},[33,1471,1472,1474,1476,1478,1480,1482,1484,1486,1488,1491],{"class":35,"line":36},[33,1473,633],{"class":123},[33,1475,127],{"class":47},[33,1477,52],{"class":51},[33,1479,67],{"class":55},[33,1481,52],{"class":51},[33,1483,111],{"class":101},[33,1485,114],{"class":411},[33,1487,446],{"class":47},[33,1489,1490],{"class":411},"values",[33,1492,1493],{"class":47},"())\n",[1352,1495,1497,1498,1500,1501,1503],{"id":1496},"_2-using-get-to-test-existence-when-none-may-be-a-real-value","2. Using ",[30,1499,195],{}," to test existence when ",[30,1502,709],{}," may be a real value",[14,1505,1506],{},"This can cause confusion:",[23,1508,1510],{"className":25,"code":1509,"language":27,"meta":28,"style":28},"user = {\"email\": None}\n\nif user.get(\"email\") is None:\n    print(\"This does not prove the key is missing\")\n",[30,1511,1512,1532,1536,1564],{"__ignoreMap":28},[33,1513,1514,1516,1518,1520,1522,1524,1526,1528,1530],{"class":35,"line":36},[33,1515,40],{"class":39},[33,1517,44],{"class":43},[33,1519,48],{"class":47},[33,1521,52],{"class":51},[33,1523,502],{"class":55},[33,1525,52],{"class":51},[33,1527,61],{"class":47},[33,1529,1008],{"class":819},[33,1531,88],{"class":47},[33,1533,1534],{"class":35,"line":91},[33,1535,95],{"emptyLinePlaceholder":94},[33,1537,1538,1540,1542,1544,1546,1548,1550,1552,1554,1557,1560,1562],{"class":35,"line":98},[33,1539,102],{"class":101},[33,1541,114],{"class":39},[33,1543,446],{"class":47},[33,1545,768],{"class":411},[33,1547,127],{"class":47},[33,1549,52],{"class":51},[33,1551,502],{"class":55},[33,1553,52],{"class":51},[33,1555,1556],{"class":47},")",[33,1558,1559],{"class":43}," is",[33,1561,1008],{"class":819},[33,1563,117],{"class":47},[33,1565,1566,1568,1570,1572,1575,1577],{"class":35,"line":120},[33,1567,124],{"class":123},[33,1569,127],{"class":47},[33,1571,52],{"class":51},[33,1573,1574],{"class":55},"This does not prove the key is missing",[33,1576,52],{"class":51},[33,1578,137],{"class":47},[14,1580,1581,1582,446],{},"The key may exist and still have the value ",[30,1583,709],{},[1352,1585,1587,1588,1590],{"id":1586},"_3-accessing-my_dictkey-before-checking-if-the-key-exists","3. Accessing ",[30,1589,1322],{}," before checking if the key exists",[14,1592,1593],{},"This can raise an error:",[23,1595,1597],{"className":25,"code":1596,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\"}\n\nprint(user[\"email\"])\n",[30,1598,1599,1623,1627],{"__ignoreMap":28},[33,1600,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621],{"class":35,"line":36},[33,1602,40],{"class":39},[33,1604,44],{"class":43},[33,1606,48],{"class":47},[33,1608,52],{"class":51},[33,1610,56],{"class":55},[33,1612,52],{"class":51},[33,1614,61],{"class":47},[33,1616,64],{"class":51},[33,1618,67],{"class":55},[33,1620,52],{"class":51},[33,1622,88],{"class":47},[33,1624,1625],{"class":35,"line":91},[33,1626,95],{"emptyLinePlaceholder":94},[33,1628,1629,1631,1633,1635,1637,1639,1641,1643],{"class":35,"line":98},[33,1630,633],{"class":123},[33,1632,127],{"class":47},[33,1634,412],{"class":411},[33,1636,415],{"class":47},[33,1638,52],{"class":51},[33,1640,502],{"class":55},[33,1642,52],{"class":51},[33,1644,424],{"class":47},[14,1646,1647,1648,1650,1651,1653],{},"This raises a ",[30,1649,185],{}," because ",[30,1652,1089],{}," is not in the dictionary.",[1352,1655,1657,1658,1660],{"id":1656},"_4-assuming-in-checks-values-in-a-dictionary","4. Assuming ",[30,1659,167],{}," checks values in a dictionary",[14,1662,1663],{},"This is a very common mistake for beginners.",[23,1665,1667],{"className":25,"code":1666,"language":27,"meta":28,"style":28},"user = {\"name\": \"Sam\"}\n\nprint(\"Sam\" in user)\n",[30,1668,1669,1693,1697],{"__ignoreMap":28},[33,1670,1671,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691],{"class":35,"line":36},[33,1672,40],{"class":39},[33,1674,44],{"class":43},[33,1676,48],{"class":47},[33,1678,52],{"class":51},[33,1680,56],{"class":55},[33,1682,52],{"class":51},[33,1684,61],{"class":47},[33,1686,64],{"class":51},[33,1688,67],{"class":55},[33,1690,52],{"class":51},[33,1692,88],{"class":47},[33,1694,1695],{"class":35,"line":91},[33,1696,95],{"emptyLinePlaceholder":94},[33,1698,1699,1701,1703,1705,1707,1709,1711,1713],{"class":35,"line":98},[33,1700,633],{"class":123},[33,1702,127],{"class":47},[33,1704,52],{"class":51},[33,1706,67],{"class":55},[33,1708,52],{"class":51},[33,1710,111],{"class":101},[33,1712,114],{"class":411},[33,1714,137],{"class":47},[14,1716,1717,1718,1650,1720,1723],{},"This returns ",[30,1719,240],{},[30,1721,1722],{},"\"Sam\""," is a value, not a key.",[18,1725,1727],{"id":1726},"common-causes","Common causes",[14,1729,1730],{},"These are the most common reasons beginners run into problems here:",[174,1732,1733,1739,1742,1747],{},[177,1734,1735,1736,1738],{},"Trying to read ",[30,1737,1322],{}," when the key is missing",[177,1740,1741],{},"Confusing dictionary keys with dictionary values",[177,1743,450,1744,1746],{},[30,1745,195],{}," without understanding its default return value",[177,1748,1749,1750,1752],{},"Expecting ",[30,1751,167],{}," to search values instead of keys",[18,1754,1756],{"id":1755},"helpful-debugging-checks","Helpful debugging checks",[14,1758,1759],{},"If your dictionary lookup is not working as expected, these quick checks can help:",[23,1761,1763],{"className":25,"code":1762,"language":27,"meta":28,"style":28},"print(my_dict)\nprint(my_dict.keys())\nprint(\"name\" in my_dict)\nprint(my_dict.get(\"name\"))\nprint(list(my_dict.items()))\n",[30,1764,1765,1776,1791,1810,1832],{"__ignoreMap":28},[33,1766,1767,1769,1771,1774],{"class":35,"line":36},[33,1768,633],{"class":123},[33,1770,127],{"class":47},[33,1772,1773],{"class":411},"my_dict",[33,1775,137],{"class":47},[33,1777,1778,1780,1782,1784,1786,1789],{"class":35,"line":91},[33,1779,633],{"class":123},[33,1781,127],{"class":47},[33,1783,1773],{"class":411},[33,1785,446],{"class":47},[33,1787,1788],{"class":411},"keys",[33,1790,1493],{"class":47},[33,1792,1793,1795,1797,1799,1801,1803,1805,1808],{"class":35,"line":98},[33,1794,633],{"class":123},[33,1796,127],{"class":47},[33,1798,52],{"class":51},[33,1800,56],{"class":55},[33,1802,52],{"class":51},[33,1804,111],{"class":101},[33,1806,1807],{"class":411}," my_dict",[33,1809,137],{"class":47},[33,1811,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830],{"class":35,"line":120},[33,1813,633],{"class":123},[33,1815,127],{"class":47},[33,1817,1773],{"class":411},[33,1819,446],{"class":47},[33,1821,768],{"class":411},[33,1823,127],{"class":47},[33,1825,52],{"class":51},[33,1827,56],{"class":55},[33,1829,52],{"class":51},[33,1831,779],{"class":47},[33,1833,1834,1836,1838,1841,1843,1845,1847,1850],{"class":35,"line":140},[33,1835,633],{"class":123},[33,1837,127],{"class":47},[33,1839,1840],{"class":1279},"list",[33,1842,127],{"class":47},[33,1844,1773],{"class":411},[33,1846,446],{"class":47},[33,1848,1849],{"class":411},"items",[33,1851,1852],{"class":47},"()))\n",[14,1854,1855],{},"What these show:",[174,1857,1858,1864,1870,1876,1884],{},[177,1859,1860,1863],{},[30,1861,1862],{},"print(my_dict)"," shows the full dictionary",[177,1865,1866,1869],{},[30,1867,1868],{},"print(my_dict.keys())"," shows all keys",[177,1871,1872,1875],{},[30,1873,1874],{},"print(\"name\" in my_dict)"," tests one key directly",[177,1877,1878,1881,1882],{},[30,1879,1880],{},"print(my_dict.get(\"name\"))"," shows the value or ",[30,1883,709],{},[177,1885,1886,1889],{},[30,1887,1888],{},"print(list(my_dict.items()))"," shows key-value pairs",[18,1891,1893],{"id":1892},"faq","FAQ",[1352,1895,1897,1898,1900],{"id":1896},"does-in-check-keys-or-values-in-a-dictionary","Does ",[30,1899,167],{}," check keys or values in a dictionary?",[14,1902,1903],{},"It checks keys, not values.",[1352,1905,1907],{"id":1906},"how-do-i-check-if-a-value-exists-in-a-dictionary","How do I check if a value exists in a dictionary?",[14,1909,457,1910,1913],{},[30,1911,1912],{},"value in my_dict.values()",". This is different from checking keys.",[1352,1915,1917,1918,1339,1920,1922],{"id":1916},"should-i-use-get-or-in","Should I use ",[30,1919,195],{},[30,1921,167],{},"?",[14,1924,457,1925,1927,1928,1930],{},[30,1926,167],{}," when you only want to know if the key exists. Use ",[30,1929,195],{}," when you want the value and a safe default.",[1352,1932,1934,1935,1937,1938,1940],{"id":1933},"why-did-get-return-none-even-though-i-expected-a-value","Why did ",[30,1936,195],{}," return ",[30,1939,709],{}," even though I expected a value?",[14,1942,1943,1944,1946],{},"The key may be missing, or the key may exist with ",[30,1945,709],{}," stored as its value.",[18,1948,1950],{"id":1949},"see-also","See also",[174,1952,1953,1957,1963,1968,1973,1977],{},[177,1954,1955],{},[442,1956,445],{"href":444},[177,1958,1959],{},[442,1960,935,1961,938],{"href":934},[30,1962,195],{},[177,1964,1965],{},[442,1966,1967],{"href":942},"How to access values in a dictionary in Python",[177,1969,1970],{},[442,1971,1972],{"href":690},"How to add a key to a dictionary in Python",[177,1974,1975],{},[442,1976,1338],{"href":1337},[177,1978,1979],{},[442,1980,1343],{"href":1342},[1982,1983,1984],"style",{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":28,"searchDepth":91,"depth":91,"links":1986},[1987,1988,1989,1991,1993,1995,1997,1999,2008,2009,2010,2019],{"id":20,"depth":91,"text":21},{"id":171,"depth":91,"text":172},{"id":203,"depth":91,"text":1990},"Best method for most cases: use in",{"id":449,"depth":91,"text":1992},"Using not in for missing keys",{"id":694,"depth":91,"text":1994},"Use get() when you also want the value",{"id":946,"depth":91,"text":1996},"Know the difference between a missing key and a None value",{"id":1206,"depth":91,"text":1998},"When try-except makes sense",{"id":1346,"depth":91,"text":1347,"children":2000},[2001,2002,2004,2006],{"id":1354,"depth":98,"text":1355},{"id":1496,"depth":98,"text":2003},"2. Using get() to test existence when None may be a real value",{"id":1586,"depth":98,"text":2005},"3. Accessing my_dict[key] before checking if the key exists",{"id":1656,"depth":98,"text":2007},"4. Assuming in checks values in a dictionary",{"id":1726,"depth":91,"text":1727},{"id":1755,"depth":91,"text":1756},{"id":1892,"depth":91,"text":1893,"children":2011},[2012,2014,2015,2017],{"id":1896,"depth":98,"text":2013},"Does in check keys or values in a dictionary?",{"id":1906,"depth":98,"text":1907},{"id":1916,"depth":98,"text":2016},"Should I use get() or in?",{"id":1933,"depth":98,"text":2018},"Why did get() return None even though I expected a value?",{"id":1949,"depth":91,"text":1950},"Master how to check if a key exists in a dictionary in python in our comprehensive Python beginner guide.","md",{},"\u002Fhow-to\u002Fhow-to-check-if-a-key-exists-in-a-dictionary-in-python",{"title":5,"description":2020},"how-to\u002Fhow-to-check-if-a-key-exists-in-a-dictionary-in-python","Wnu5QrJZCbJjC2rsmo-6BVSjTc3Fda7epWq2DISAa9Y",1777585496697]