Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вы не можете добавить к списку, просматривая его. user_list.append(v)
добавляет строку в список словарей, и это приводит к сбою следующей итерации, потому что она пытается сделать .items()
в строке.
Как уже говорили другие, вы добавляете v
, который является строкой, к списку, который вы перебираете, как состоит из слов, заканчивающихся смесью строк и словарей, что не рекомендуется. Я думаю, что это была опечатка, которую можно исправить простым:
usernames = []
for users_dict in user_list:
for k, v in users_dict.items(): # fails at this line
if(k == 'username'):
usernames.append(v)
usernames
>>> ['efermi', 'efermi2']
или лучше:
usernames = [x["username"] for x in user_list]