Python:重做上一个 JSON 请求,直到发生变化
Python: redo last JSON request till something changes
我有一个有趣的问题:如何让 Python 不断重复上一个动作,直到我看到不同的结果?
方案: 我正在尝试从 Google API 中检索 JSON
。我的代码是这样的:
- 如果
['status'] == 'ZERO_RESULTS'
我传给下一个经纬度去检查
- if
['status'] == 'OK'
我从纬度、经度检索数据
- if
['status'] == 'OVER_QUERY_LIMIT'
等待 24 小时然后重试 that Latitude,Longitude
例如:
#!/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)
Google API 在我的请求限制变干并且我的脚本需要暂停 24 小时后停止我的脚本。
这就是为什么 "t"
中的 "t"
将变成 "c"
或 "a"
但我不想从头开始重新解析 JSON
因为我正在检查所有 Latitude , 每个国家/地区的经度。
我要:
Parse JSON
Pause 24h
reparse that last JSON
while True:
data = get_data()
status = data['status']
if status != 'OVER_QUERY_LIMIT':
break
sleep(...)
if status == 'ZERO_RESULTS':
...
elif status == 'OK':
...
正确答案是:
#!/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)
我有一个有趣的问题:如何让 Python 不断重复上一个动作,直到我看到不同的结果?
方案: 我正在尝试从 Google API 中检索 JSON
。我的代码是这样的:
- 如果
['status'] == 'ZERO_RESULTS'
我传给下一个经纬度去检查 - if
['status'] == 'OK'
我从纬度、经度检索数据 - if
['status'] == 'OVER_QUERY_LIMIT'
等待 24 小时然后重试 that Latitude,Longitude
例如:
#!/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)
Google API 在我的请求限制变干并且我的脚本需要暂停 24 小时后停止我的脚本。
这就是为什么 "t"
中的 "t"
将变成 "c"
或 "a"
但我不想从头开始重新解析 JSON
因为我正在检查所有 Latitude , 每个国家/地区的经度。
我要:
Parse JSON
Pause 24h
reparse that last JSON
while True:
data = get_data()
status = data['status']
if status != 'OVER_QUERY_LIMIT':
break
sleep(...)
if status == 'ZERO_RESULTS':
...
elif status == 'OK':
...
正确答案是:
#!/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)