title: Chichaplanet is down
link: http://jj.isgeek.net/2006/01/chichaplanet-is-down/
author: Jj
description: 
post_id: 105
date: 2006/01/28 01:17:21
created_gmt: 2006/01/28 06:17:21
comment_status: open
slug: chichaplanet-is-down

Acabo de entrar a [Chichaplanet](http://chichaplanet.org/), y me encuentro con la pantalla de error en modo DEBUG de [Django](http://www.djangoproject.com/)!

La lÃ­nea de error es:  
`43\. count = tagcount[id] `

Y de acuerdo a las variables, que se muestran, se puede ver que en el diccionario `tagcount` no existe un valor para la llave `id` que es 75 ([75, 'journal comic']).
    
    
    
    
    
    
    id = 75
    
    
    
    
    tagcount = {1: 2, 2: 2, 3: 2, 4: 1, 5: 1, 6: 5, 7: 5, 8: 6, 9: 1, 10: 73, 11: 11, 12: 5, 13: 6, 14: 33, 15: 3, 16: 3, 17: 11, 18: 2, 19: 2, 20: 1, 21: 1, 22: 1, 23: 3, 24: 8, 25: 1, 26: 4, 27: 2, 28: 5, 29: 1, 30: 5, 31: 1, 32: 1, 33: 1, 34: 6, 35: 1, 36: 9, 37: 5, 38: 1, 39: 1, 40: 1, 41: 2, 42: 1, 43: 1, 44: 2, 45: 1, 46: 1, 47: 34, 48: 1, 49: 2, 50: 5, 51: 2, 52: 6, 53: 3, 54: 1, 55: 1, 56: 6, 57: 1, 58: 1, 59: 5, 60: 2, 61: 2, 62: 3, 63: 3, 64: 3, 65: 3, 66: 2, 67: 10, 68: 1, 69: 4, 70: 2, 71: 1, 72: 2, 73: 1, 74: 1, 76: 1}
    
    
    
    
    

Una alternativa es poner la lÃ­nea dentro de un bloque `try ... except`, O sino usar el metodo `get` de los diccionarios, que permite devolver un valor predeterminado en caso no exista un valor para la llave pedida.
    
    
    
    
    
    
    try:
    
    
    
    
        count = tagcount[id]
    
    
    
    
    except KeyError:
    
    
    
    
        count = 0
    
    
    
    
    
    
    
    
    
    
    
    count = tagcount.get(id, 0)
    
    
    
    
    

Creo que poner el bloque `try ... catch` serÃ­a mejor, a pesar que usar `.get` se vea mas elegante y sea mas corto. La mayorÃ­a de las veces SI habrÃ¡ un valor en tagcount para id y se podrÃ¡ ahorrar la llamada extra al mÃ©todo que probablemente haga algo similar, o tenga un condicional adentro.

Claro, Ã©sto es viendo Ãºnicamente esa lÃ­nea. Pero tal vez sea mejor asegurarse de antemano que en el arreglo `tagnames` no hayan claves que no estÃ©n en el diccionario
    
    
    
    
    
    
      42. for id, name in tagnames:
    
    
    
    
      43.     count = tagcount[id] ...
    
    
    
    
      44.     weight = [x[0] for x in steps if x[1] >= count and x[1] > 0][0]+1
    
    
    
    
      45.     tags.append({'id':id, 'name':name, 'count':count, 'weight':weight})
    
    
    
    
    
    
    
    tagnames = [[7, 'actualidad nacional'], [30, 'administrivia'], [1, 'alex celi'], [13, 'aureal'], [53, 'blogs'], [56, 'casi personal'], [27, 'chicha'], [16, 'cine'], [9, 'cipher'], [42, 'computers'], [74, 'comunidad'], [54, 'conferencias'], [18, 'cultura'], [32, 'culture'], [36, 'debian'], [45, 'debian-es'], [28, 'django'], [43, 'dump'], [69, 'en'], [67, 'es'], [55, 'eventos'], [34, 'free software'], [37, 'freebsd'], [47, 'freedom'], [49, 'freesoftware'], [64, 'funny'], [6, 'futbol'], [29, 'games'], [10, 'general'], [40, 'gnome'], [22, 'humor'], [25, 'humour'], [68, 'inform\xc3\xa1tica'], [44, 'inspiracion'], [23, 'internet'], [48, 'iowa'], [75, 'journal comic'], [4, 'juegos'], [19, 'libertarismo'], [21, 'libros'], [24, 'life'], [11, 'linux'], [46, 'music'], [50, 'musica'], [58, 'net'], [66, 'networking'], [38, 'novell'], [35, 'openbsd'], [14, 'personal'], [63, 'personales'], [8, 'peru'], [72, 'php'], [20, 'pol\xc3\xadtica'], [51, 'programacion'], [31, 'programming'], [26, 'python'], [33, 'science'], [41, 'scifi'], [12, 'security'], [65, 'shits'], [52, 'soft. libre'], [15, 'software libre'], [5, 'star wars galaxies'], [73, 'sysadmin'], [17, 'tech'], [39, 'technology'], [76, 'tecnologia'], [57, 'terror'], [60, 'uncategorized'], [3, 'unidad crema'], [62, 'universidad'], [2, 'universitario de deportes'], [61, 'utpinux'], [59, 'vida'], [70, 'web'], [71, 'xhtml']]

Esperemos que [Tabo](http://tabo.aurealsys.com/) arregle este feature en [Feedjack](http://tabo.aurealsys.com/archives/2005/12/13/django-powered-chicha-planet-with-feedjack/) pronto :)