我有一个非常简单的Python脚本,我每隔n
秒尝试打印一个更新的时间戳(通过API从服务器获取)。
导入自定义模块(FinexAPI)和时间模块后:
import FinexAPI
import time
并设置变量以获取服务器时间戳:
ticker = FinexAPI.ticker()
when = float(ticker['timestamp'])
如果我执行:
print when
我正在更新时间戳。如果我再次执行它,我可以看到一个新的更新时间戳。直到现在根本没有问题。
现在让我们假设我需要每5秒执行一次“更新的时间戳打印”:
def getNewTimestamp():
print when
time.sleep(5)
while True:
getNewTimestamp()
但是使用这段代码,我每隔5秒就得到相同的时间戳。我想问题是我在when
函数之外定义getNewTimestamp
,所以它基本上保持打印相同的非更新时间戳。但即使我在函数内部定义它,我仍然没有得到时间戳的更新。
我正在考虑的另一件事是,虽然循环不是这种情况下的最佳选择,但那将是另一个故事(我认为......)。有人可以帮我弄清楚我做错了什么,以及每5秒获取和打印更新时间戳的最佳方法是什么?
答案 0 :(得分:0)
您必须在循环中调用API:
def getNewTimestamp():
ticker = FinexAPI.ticker()
when = float(ticker['timestamp'])
print when
while True:
getNewTimestamp()
time.sleep(5)