``ValueError`` está sendo tratado para os métodos ``json.loads`` e ``urllib2.urlopen``, e me parece que o objetivo é tratar apenas o primeiro, certo? De qqer maneira, se estes casos ocorrerem não podemos apenas "varrer para debaixo do tapete" retornando uma lista vazia, devemos ou levantar uma exceção ou ao menos escrever uma linha em log de nível ERROR.