@ItzGuyMc

TypeError: list indices must be integers or slices, not str в JSON?

И так, с помощью
[item for item in data['data']['list'] if item['user']['name'] == 'name1']
я фильтрую код и оставляю только тот код где name == name1 (что ясно из кода), как мне этот код вернуть обратно в JSON и отфильтровать его ещё раз?
Я пробовал использовать json.dumps() и json.loads(), не помогает - при попытке отфильтровать код ещё раз получаю ошибку
TypeError: list indices must be integers or slices, not str
используя такой код:
[item for item in njson['data']['list'] if 'text' in item['message']]
, подскажите что делать
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
Логично же, что если делать
njson = [item for item in data['data']['list'] if item['user']['name'] == 'name1']

то njson будет списком, а не вложенным словарём. И обращаться к его элементам как njson['data']['list'] не имеет смысла.

Если цель была отфильтровать тот список внутри изначального json, то его и нужно было менять:
data['data']['list'] = [item for item in data['data']['list'] if item['user']['name'] == 'name1']
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы