質問するログイン新規登録

質問編集履歴

1

コードの追加

2021/09/18 23:56

投稿

umechan2
umechan2

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,94 @@
1
1
  下に示したコードのelifとelseの部分にinvalid syntax とエラーが表示されるのですが,なぜでしょうか.
2
+ メールアドレスやパスワードの部分はプライバシー保護のためaaaと表記しています
2
3
 
4
+ ```python
5
+ # ----------------------------------
6
+ # BTC急上昇・急降下お知らせツール
7
+ # ----------------------------------
8
+ # 必要パッケージ
9
+ # pip install python-dateutil
10
+ # pip install email
11
+ # ----------------------------------
12
+ import sys
13
+ import requests
14
+ import time
15
+ import dateutil.parser
16
+ import smtplib
17
+ import email
18
+ from email.mime.text import MIMEText
19
+ from email.utils import formatdate
20
+ from email.header import Header
21
+
22
+ API="https://api.bitflyer.jp/v1/ticker"
23
+
24
+
25
+ #暴騰・暴落の価格差(円)
26
+ chk_yen=50
27
+
28
+ #スリープ時間(秒)
29
+ sleep_time=60
30
+
31
+ #★送信元メール
32
+ MY_ADDRESS='aaa'
33
+
34
+ #★送信元メールパスワード
35
+ MY_PASSWORD='aaa'
36
+
37
+ #★送信元メールSMTPサーバー
38
+ SMTP_SERVER='aaa'
39
+
40
+ #★送信先アドレス
41
+ TO_ADDRESS='aaa'
42
+
43
+ #メール件名
44
+ subject_header="【Bitcoin価格チェック】"
45
+
46
+
47
+ #
48
+ #関数:メール送信
49
+ #
50
+ def org_send_mail(from_address,to_address,subject,body):
51
+ msg=MIMEText(body.encode(charset),"plain",charset)
52
+ msg["Subject"]=Header(subject,charset)
53
+ msg["From"] =MY_ADDRESS
54
+ msg["To"] =TO_ADDRESS
55
+ msg["Date"] =formatdate(localtime=True)
56
+ smtp=smtplib.SMTP(SMTP_SERVER,587)
57
+ smtp.ehlo()
58
+ smtp.starttls()
59
+ smtp.login(MY_ADDRESS,MY_PASSWORD)
60
+ smtp.sendmail(from_address,to_address,msg.as_string())
61
+ smtp.quit()
62
+
63
+
64
+
65
+ if __name__=='__main__':
66
+ i=0
67
+ bid_btc=[]
68
+
69
+ charset="ISO-2022-JP"
70
+
71
+ #ループ
72
+ while True:
73
+ updown=""
74
+
75
+ #APIリクエスト
76
+ res=requests.get(API)
77
+
78
+ #JSON取得
79
+ json=res.json()
80
+
81
+ #リストに追加
82
+ bid_btc.append(int(json["best_bid"]))
83
+
84
+ #タイムスタンプ
85
+ tstr=json["timestamp"]
86
+
87
+ #JSON形式では直接パース出来ないのでdeteutil使用
88
+ tdatetime=dateutil.parser.parse(tstr)
89
+
90
+ tdatetime_str=tdatetime.strftime('%Y/%m/%d %H:%M:%S')
91
+
3
92
  if i!=0:
4
93
  #価格差取得
5
94
  kakakusa=int (bid_btc[i])-int (bid_btc[i-1])
@@ -40,4 +129,10 @@
40
129
  updown="";
41
130
  pass
42
131
 
43
- print("["+tdatetime_str+"] BTC_JP Bid: "+"{:,d}".format(bid_btc[i])+"円"+updown)
132
+ print("["+tdatetime_str+"] BTC_JP Bid: "+"{:,d}".format(bid_btc[i])+"円"+updown)
133
+
134
+ #スリープ
135
+ time.sleep(int(sleep_time))
136
+
137
+ i=i+1
138
+ ```