无法从Facebook访问json文件中的“内容”键

时间:2019-10-16 22:19:44

标签: json python-3.x facebook-messenger

我已经下载了包括消息在内的我的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 :(得分:0)

好的,所以我发现了问题所在。事实证明,某些消息没有“内容”字段。例如,只有有人离开聊天室的通知。所以我要做的是更改了这部分代码:

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

现在可以正常工作了。