前提
ここに質問の内容を詳しく書いてください。
SlackAPIを使ってblock_idを抽出するプログラムの作成中に以下のエラーが出ました。
TypeErorr: list indices must be integers or slices, not str
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- block_idの表示
発生している問題・エラーメッセージ
Traceback (most recent call last): File "D:\slack_bot\app.py", line 152, in <module> comentThread() File "D:\slack_bot\app.py", line 107, in comentThread print(i['bloks']['block_id']) TypeErorr: list indices must be integers or slices, not str
該当のソースコード
def commentThread(channel_id, ts): url = "https://slack.com/api/conversations.replies" header = { "Authorization": "Bearer {}".format(SLACK_BOT_TOKEN) } payload = { "channel" : channel_id, "ts" : ts } res = requests.get(url, headers = header, params = payload) json_data = res.json() messages = json_data['messages'] for i in messages: print(i['blocks']['block_id'])
試したこと
print文の中身をi['blocks']のみにして実行→blocksの中身が表示された
補足情報(FW/ツールのバージョンなど)
使用言語Python
json_data['messages'] の内容に依存すると思います。
json_data['messages'] のサンプルデータを質問に追記していただくことはできないでしょうか。
取得できたものから一部のコメントのデータ(json_data['messages']の内容)を載せておきます。
{
"client_msg_id": "e762ffe0-393e-41b3-af13-29756982c66a",
"type": "message",
"text": "書き込み集めたい",
"user": "U03HEBTB9DZ",
"ts": "1659274107.029069",
"team": "T03HGP8BH60",
"blocks": [
{
"type": "rich_text",
"block_id": "M+N",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "書き込み集めたい"
}
]
}
]
}
],
"thread_ts": "1659274107.029069",
"reply_count": 8,
"reply_users_count": 1,
"latest_reply": "1659274264.151869",
"reply_users": [
"U03HEBTB9DZ"
],
"is_locked": false,
"subscribed": false
}
回答1件
あなたの回答
tips
プレビュー