質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

471閲覧

LINE Messaging APIのJSONファイルがうまく読み込めません

jyansinkai

総合スコア66

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/07/05 07:54

編集2022/07/06 00:46

お世話になっております。

LINE Messaging APIからJSONファイルを取得する所まではうまくいきましたが、この複雑な辞書からデータを取り出す所でつまづきました。

Python

1#!/usr/local/bin/python3.7 2import json, os, sys, cgi 3import sqlite3 4 5if os.environ['REQUEST_METHOD'] == 'POST': 6 7 length, _ = cgi.parse_header(os.environ['CONTENT_LENGTH']) 8 data = sys.stdin.buffer.read(int(length)) 9 10 json_str = data.decode("utf-8") 11 json_data = json.loads(json_str) 12 13 destination = json_data["destination"] 14 events = json_data["events"] 15 16### ここでエラーになるようです### 17 event_type = json_data["events"][0]["type"] 18###################### 19 20 print ("Content-type: application/json\n") 21 print ("{}")

Pythonの辞書

1{'destination': '***', 2 'events': 3 [ 4 { 5 'type': 'message', 6 'message': 7 { 8 'type': 'text', 9 'id': '***', 10 'text': 'ようこそ' 11 }, 12 'webhookEventId': '***', 13 'deliveryContext': {'isRedelivery': False}, 14 'timestamp': 1656995173364, 15 'source': 16 { 17 'type': 'user', 18 'userId': '***' 19 }, 20 'replyToken': '***', 21 'mode': 'active' 22 } 23 ] 24}

変数event_typeにはmessageという文字列が入ると考えますが、エラーとなってしまいます。
Pythonの辞書の扱い方の話だと思いますが、どのサイトを参考にしても上記のような書き方であり、エラーが解決しません。
どのように修正すべきか、何卒ご教授下さいませ。

■ 2022/07/06 追記

エラーは、LINE Developer の Messaging API settingsで、Webhook URLをVerifyした時、このような形で出てきます。
イメージ説明

上記コードのエラーとなる部分をコメントアウトすると「success」となります。
また、データベースに出力させたJSONデータを直接書いたテスト用コードでは、エラーなく変数に辞書の内容が代入されました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問