Почему при вынесении из цикла переменной, которая не изменяется вываливается ошибка?
import urllib, json

url_members = 'https://api.vk.com/method/groups.getMembers?group_id=67824212'
response_url_members = urllib.urlopen(url_members)
data = json.loads(response_url_members.read())
members = data['response']['users']
print(members)
в первом варианте у вас три раза запрашивается урл
во втором урл запрашивается один раз, первый вызов read забирает все данные, и на втором уже убудет пустая строка, которая не является валидным json, отсюда ошибка.
При этом у вас на каждой итерации цикла вызывается преобразование одних и техже данных в json.
помимо этого сам цикл вообще бесполезный поскольку в переменную members, будет на каждой итерации записываться значение и затираться следующим, будет проще обратится по индексу сразу. members = data['response']['users'][2]
потому что в 1 случае ты загружаешь три раза одно и тоже 
во втором случае ты пытаешься считать одно и тоже (но так нельзя, это как с файлами, открыл файл, дошел до конца, открывай снова(или записывай че открыл)
Короче, юзай 1 способ или вместо urllib urllib2,
------
Ну и банально ты можешь просто выходить за границы массива
-----
Еще вариант, в первую очередь его попробуй:
вынеси response_url_members.read() в отдельную переменную и в цикле юзай его