New Ribbon
用Canva設計超快超質感(第2版):商業設計、簡報、影片、網頁、電子書與AI應用最速技 AI繪圖工具 × AI視覺設計平台,從圖像生成到專業設計! 最強職場助攻!ChatGPT + AI 高效工作術 短影音制霸:打造TikTok、YT Shorts、IG Reels成功方程式與AI高效創作力 Canva+AI創意設計與品牌應用250招:從商業技巧、社群祕技到AI圖文影音特效 快快樂樂學威力導演2024.影音剪輯與AI精彩創作 Power Automate自動化超效率工作術 Midjourney AI圖像魔導書:搭配ChatGPT魔法加倍 超人氣FB+IG+LINE社群經營與行銷力(第二版) 翻倍效率工作術:不會就太可惜的 Excel × ChatGPT 自動化應用 AppInventor2零基礎入門班中文版(第六版) Python零基礎入門班(第四版) C語言學習聖經 用Canva設計超快超質感:平面、網頁、電子書、簡報、影片製作與AI繪圖最速技 PHP8/MySQL網頁程式設計自學聖經 翻倍效率工作術 - 不會就太可惜的Power BI大數據視覺圖表設計與分析(第三版) 社群經營一定要會的影音剪輯與動畫製作術 Notion高效管理250招:筆記×資料庫×團隊協作,數位生活與工作最佳幫手 Office 2021高效實用範例必修16課(附500分鐘影音教學/範例檔) Excel自學聖經(第二版):從完整入門到職場活用的技巧與實例大全

 

  python大數據特訓班第二板11

張


更新時間:2021/12/29 上午 07:47:51

 

第11章
原本的程式碼
import twstock

stock = twstock.Stock('2317')  #鴻海
print('近31個收盤價:')
print(stock.price)   #近31個收盤價
print('近6個收盤價:')
print(stock.price[-6:])   #近6日之收盤價

real = twstock.realtime.get('2317')
if real['success']:
    print('即時股票資料:')
    print(real)  #即時資料
    print('目前股價:')
    print(real['realtime']['latest_trade_price'])  #即時價格
else:
    print('錯誤:' + real['rtmessage'])

問題
KeyError                                  Traceback (most recent call last)
<ipython-input-1-782dfebbfa65> in <module>
      7 print(stock.price[-6:])   #近6日之收盤價
      8
----> 9 real = twstock.realtime.get('2317')
     10 if real['success']:
     11     print('即時股票資料:')

C:\ProgramData\Anaconda3\lib\site-packages\twstock\realtime.py in get(stocks, retry)
    120         return result
    121
--> 122     return _format_stock_info(data['msgArray'][0])

C:\ProgramData\Anaconda3\lib\site-packages\twstock\realtime.py in _format_stock_info(data)
     25
     26     # Timestamp
---> 27     result['timestamp'] = int(data['tlong']) / 1000
     28
     29     # Information

KeyError: 'tlong'

張


更新時間:2021/12/29 上午 09:40:57

 

抱歉上面的問題解決了
但有新的問題
程式:
import twstock
import time
import requests

def lineNotify(token, msg):
    headers = {
        "Authorization": "Bearer " + token,
        "Content-Type" : "application/x-www-form-urlencoded"
    }

    payload = {'message': msg}
    notify = requests.post("https://notify-api.line.me/api/notify", headers = headers, params = payload)
    return notify.status_code

def sendline(mode, realprice, counterLine, token):
    print('鴻海目前股價:' + str(realprice))
    if mode == 1:
        message = '現在鴻海股價為 ' + str(realprice) + '元,可以賣出股票了!'
    else:
        message = '現在鴻海股價為 ' + str(realprice) + '元,可以買入股票了!'
    code = lineNotify(token, message)
    if code == 200:
        counterLine = counterLine + 1
        print('第 ' + str(counterLine) + ' 次發送 LINE 訊息。')
    else:
        print('發送 LINE 訊息失敗!')
    return counterLine

token = 'iFECLvCabhRfo86Tw4k6uFnR01DGI4iXw2iB8fg4ezO'  #權杖
counterLine = 0  #儲存發送次數
counterError = 0  #儲存錯誤次數

print('程式開始執行!')
while True:
    realdata = twstock.realtime.get('2317')  #即時資料
    if realdata['success']:
        realprice = realdata['realtime']['latest_trade_price']  #目前股價
        if float(realprice) >= 80:
            counterLine = sendline(1, realprice, counterLine, token)
        elif float(realprice) <= 60:
            counterLine = sendline(2, realprice, counterLine, token)
        if counterLine >= 3:  #最多發送3次就結束程式
            print('程式結束!')
            break
    else:
        print('twstock 讀取錯誤,錯誤原因:' + realdata['rtmessage'])
        counterError = counterError + 1
        if counterError >= 3:  #最多錯誤3次
            print('程式結束!')
            break
    for i in range(300):  #每5分鐘讀一次
        time.sleep(1)  


問題:
ValueError                                Traceback (most recent call last)
<ipython-input-10-a2b21111a975> in <module>
     36     if realdata['success']:
     37         realprice = realdata['realtime']['latest_trade_price']  #目前股價
---> 38         if float(realprice) >= 80:
     39             counterLine = sendline(1, realprice, counterLine, token)
     40         elif float(realprice) <= 60:

ValueError: could not convert string to float: '-'

文淵閣工作室

文淵閣工作室
更新時間:2021/12/29 下午 09:16:42

 

我們剛執行程式,可正常發送 LINENITIFY。
錯誤是未讀到即時股價,回傳「-」產生的錯誤。請:
1. 在白天執行,且多執行幾次。(理論上,股市收盤時段也可正常運作)
2. 確認網路連線正常。
3. 執行 twstock1.py 看是否可讀到即時股價




 

 

Re:python大數據特訓班第二板11

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。