Невозможно получить доступ к ключу "содержимого" в файле JSON из Facebok - PullRequest
0 голосов
/ 17 октября 2019

Я скачал свои данные на Facebook, включая сообщения, и хотел что-то с ними сделать. Допустим, найдите самое длинное сообщение в разговоре.

Я использовал похожий код, но с другими ключами, для доступа к другим атрибутам сообщения, и он сработал, но не с ключом «содержимого».

Мой код выглядит следующим образом:

def extract(file):
    with open(file, 'r') as f:
        full_dict = json.load(f)
        part = full_dict["participants"]
        msg = full_dict["messages"]
    return [part, msg]


conv = extract(sys.argv[1])


def get_mess(conv):
    text= []
    for t in conv[1]:
        text.append(t["content"])
    return text

и это формат сообщения:

  {
      "sender_name": "Stasiek Janik",
      "timestamp_ms": 1555445045809,
      "content": "XD",
      "type": "Generic"
  }

Я ожидал получить список содержимого сообщений, простокак я сделал с типами или метками времени. Тем не менее, все, что я получаю, это сообщение об ошибке:

  File "fantasy.py", line 29, in get_mess
    text.append(t["content"])
KeyError: 'content'

1 Ответ

0 голосов
/ 21 октября 2019

Хорошо, я выяснил, что не так. Оказывается, что некоторые сообщения не имеют поля «контент». Например, это только уведомление о том, что кто-то покинул чат. Так что я сделал, я изменил эту часть кода:

 def get_mess(conv):
     text= []
     for t in conv[1]:
         if "content" in t:
             text.append(t["content"])
     return text

Теперь все работает просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...