2017-08-06 30 views
0

我有一個有趣的問題:如何讓Python繼續重複最後一個動作直到看到不同的結果?Python:重做上一次JSON請求,直到發生某些變化

Schenario:我試圖從Google API檢索JSON。我的代碼是這樣的:

  • 如果['status'] == 'ZERO_RESULTS'我傳遞給下一個經緯度檢查
  • 如果 ['status'] == 'OK'我從緯度檢索數據
  • ,經度
  • 如果['status'] == 'OVER_QUERY_LIMIT'等待24小時,然後再試一次經緯度

例如:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import time 

for val in "catcatcatcatcat": 
    if val == "c": 
     print(val) 
    time.sleep(1) 
    if val == "a": 
     print(val) 
    time.sleep(1) 
    elif val == "t": 
     # retray this last action till "t" has become "c" or "a" 
    time.sleep(86400) 

當我幹掉我的請求限制並且我的腳本需要暫停24小時後,Google API會停止我的腳本。 這就是爲什麼"t"在和將成爲"c""a"但我不想重新開始解析JSON從一開始我檢查所有緯度,經度每個國家。

我想:

Parse JSON 
Pause 24h 
reparse that last JSON 

回答

0
while True: 
    data = get_data() 
    status = data['status'] 
    if status != 'OVER_QUERY_LIMIT': 
     break 
    sleep(...) 
if status == 'ZERO_RESULTS': 
    ... 
elif status == 'OK': 
    ... 
0

的正確答案是:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import time 

for val in "catcatcatcatcat": 
    if val == "c": 
     print(val) 
    time.sleep(1) 
    if val == "a": 
     print(val) 
    time.sleep(1) 
    elif val == "t": 
     while val == "t": 
      print('We will retry this') 
    time.sleep(86400) 
相關問題