🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

7048閲覧

pythonファイルを実行しようとするとエラーが出ます。

HYoshitaka

総合スコア14

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/05 05:50

JupyterLabのipynbファイルを個別に走らせると実行されるのですが、ターミナルで

python main.py

と入力すると
下記のようなエラーが出ます。
原因と解決策を教えていただけますでしょうか。

Traceback (most recent call last):
File "main.py", line 30, in <module>
"execution_count": null,
NameError: name 'null' is not defined

main.pyファイルの内容は下記の通りです。

python

1import json 2from linebot import LineBotApi 3from linebot.models import TextSendMessage 4 5file = open('info.json','r') 6info = json.load(file) 7 8CHANNEL_ACCESS_TOKEN = info['CHANNEL_ACCESS_TOKEN'] 9line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN) 10 11def main(): 12 USER_ID = info['USER_ID'] 13 messages= TextSendMessage(text="おはようございます! \n 本日は==についてのお知らせです。") 14 line_bot_api.push_message(USER_ID, messages=messages) 15 16if __name__ == "__main__": 17 main()

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

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

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

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

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

otn

2021/01/05 06:09

30行も無いので、ファイルを間違っていますね。
HYoshitaka

2021/01/06 01:44

ご回答ありがとうございます。 フォルダの中にはinfo.jsonファイルとmain.pyファイルしか存在しないのでその可能性は低いように思うのですが、 ちなみにVScodeで開いてみると下記のようなコードになります。 { "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import json\n", "from linebot import LineBotApi\n", "from linebot.models import TextSendMessage\n", "\n", "file = open('info.json','r')\n", "info = json.load(file)\n", "\n", "CHANNEL_ACCESS_TOKEN = info['CHANNEL_ACCESS_TOKEN']\n", "line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)\n", "\n", "def main():\n", " USER_ID = info['USER_ID']\n", " messages= TextSendMessage(text=\"おはようございます! \\n 本日は==についてのお知らせです。\")\n", " line_bot_api.push_message(USER_ID, messages=messages)\n", "\n", "if __name__ == \"__main__\":\n", " main()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }
siruku6

2021/01/06 12:36 編集

この波かっこであふれているファイルは、main.pyでしょうか? もしそうであれば、いったんそのファイルを以下のように波かっこで囲まれていない状態に書き換えることをお勧めします。(コメント欄なのでインデントがありませんが適宜補ってください) import json from linebot import LineBotApi from linebot.models import TextSendMessage file = open('info.json','r') info = json.load(file) CHANNEL_ACCESS_TOKEN = info['CHANNEL_ACCESS_TOKEN'] line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN) def main(): USER_ID = info['USER_ID'] messages= TextSendMessage(text="おはようございます! \n 本日は==についてのお知らせです。") line_bot_api.push_message(USER_ID, messages=messages) if __name__ == "__main__": main()
otn

2021/01/06 12:41

やはりファイルを間違えていましたね。 ↑は、Pythonプログラムじゃ無いです。 質問文に書いてある内容のファイルを実行しましょう。
HYoshitaka

2021/01/06 14:34

ご回答ありがとうございます。 ご指摘の通りにmain.pyファイルを修正したらちゃんと走るようになりました。
siruku6

2021/01/08 11:42

ひとまず解決したようで良かったです! 簡単にでもよいので解決方法を書いて、自己解決にしてしまいましょう。
guest

回答1

0

自己解決

main.pyの中身を下記のように修正すると、走りました。

python

1import json 2from linebot import LineBotApi 3from linebot.models import TextSendMessage 4 5file = open('info.json','r') 6info = json.load(file) 7 8CHANNEL_ACCESS_TOKEN = info['CHANNEL_ACCESS_TOKEN'] 9line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN) 10 11def main(): 12USER_ID = info['USER_ID'] 13messages= TextSendMessage(text="おはようございます! \n 本日は==についてのお知らせです。") 14line_bot_api.push_message(USER_ID, messages=messages) 15 16if __name__ == "__main__": 17main()

投稿2021/01/08 14:25

HYoshitaka

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問