Не удалось извлечь словарь из списка в цикле for

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

1
задан Derick 14 April 2019 в 08:45
поделиться

2 ответа

Вы не можете добавить к списку, просматривая его. user_list.append(v) добавляет строку в список словарей, и это приводит к сбою следующей итерации, потому что она пытается сделать .items() в строке.

0
ответ дан Marcelo 14 April 2019 в 08:45
поделиться

Как уже говорили другие, вы добавляете 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]
0
ответ дан Lante Dellarovere 14 April 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: