2017-12-12 6 views
0

暗号データ​​(価格)を受け取り、それを小さなLED記号に送信するこのスクリプトは以下のとおりですが、問題はスクリプトが少し実行されますが、キーエラー:スクリプトを停止する「価格」、奇妙なことは「価格」はたびに有効です。私は毎分スクリプトを実行するためにcronジョブを使用していますが、これを行う簡単な方法があるように感じられます。エラーが発生した場合にスクリプトを再実行/リセットする方法はありますか?これはラズベリーパイの上にありますので、私が明らかに望んでいないテレビに再び接続することなく、それを再起動する物理的な方法はありません。助けてくれてありがとう!Python jsonを設定された時間実行した後のキーエラー

#!/usr/bin/python 
import time, json, requests 
from pyledsign.minisign import MiniSign 



def btc(): 
    btcTick= requests.get('https://api.gdax.com/products/BTC- 
    usd/ticker') # replace buy with spot_rate, sell etc 
    return btcTick.json()['price'] # replace amount with currency etc 

def ltc(): 
    ltcTick= requests.get('https://api.gdax.com/products/LTC- 
    usd/ticker') # replace buy with spot_rate, sell etc 
    return ltcTick.json()['price'] 


while True: 
    btcUSD = float(btc()) 
    ltcUSD = float(ltc()) 

    print btcUSD 
    print ltcUSD 

mysign = MiniSign(devicetype='sign') 

mysign.queuemsg(data='B: ' + '$' + str(btcUSD) + ' L: ' + '$' + 
str(ltcUSD) , effect="snow", speed=5) 
mysign.sendqueue(device='/dev/ttyUSB0', packetdelay=5.0); 

time.sleep(60) 

答えて

1

ほとんどの場合、あなたの要求の一つは、いくつかの異なる探してデータを送り返す(あるいはタイムアウト)これだけ価格を返そうとする前にチェックを行うれます。

import time 
while True: 
    try: 
     btcUSD = float(btc()) 
     ltcUSD = float(ltc()) 

     print btcUSD 
     print ltcUSD 
     time.sleep(1) 
    except KeyError as e: 
     print('Key not found') 

あなたがそれを処理するより派手な方法を持っているしたい場合は、私は明らかにあなたが戻って、すべて同じメッセージを取得していないので、あなたがあなたのリクエストから戻ってきて、そこから行っている正確に何を考え出すことをお勧め時間。 try/exceptで囲むことは、単に良い方法ではありますが、あなたが得ている反応について何を見つけても、私はそうするでしょう。

try/exceptは、スクリプトが死ぬのを防ぐため、再起動する必要はありません。

重視の太字:私はあなたのwhileループの中で寝ることをお勧めします。あなたが基本的にDoS攻撃を書いているので、たくさんのリクエストを含むWebサイトをスパミングすると、あなたをブロックするためにウェブサイトを取得することがよくあります。

+0

ありがとうございました!私はそれを置くとき私は新しいエラーを取得するTypeError:float()引数は、文字列または数値でなければなりません。 – N3VO

+0

@ N3VO Ah。はい。私は自分の答えを編集してもはや 'None'の戻り値を持たず、代わりに' KeyError'をwhileループでキャッチしました。それは返された 'None'に満足していなかったので、float引数のエラーを取り除かなければなりません – MCBama

+0

うん、私はそれを見ました、毎回見つけられないキーを引っ張っているようですが、私が必要としたもの。ありがとうございました! – N3VO

関連する問題