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()
30行も無いので、ファイルを間違っていますね。
ご回答ありがとうございます。
フォルダの中には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
}
この波かっこであふれているファイルは、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()
やはりファイルを間違えていましたね。
↑は、Pythonプログラムじゃ無いです。
質問文に書いてある内容のファイルを実行しましょう。
ご回答ありがとうございます。
ご指摘の通りにmain.pyファイルを修正したらちゃんと走るようになりました。
ひとまず解決したようで良かったです!
簡単にでもよいので解決方法を書いて、自己解決にしてしまいましょう。
回答1件
あなたの回答
tips
プレビュー