如何更新服务器的时间戳?

时间:2017-10-24 16:41:05

标签: python

我有一个非常简单的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秒获取和打印更新时间戳的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您必须在循环中调用API:

def getNewTimestamp():
    ticker = FinexAPI.ticker()
    when = float(ticker['timestamp'])
    print when

while True:
    getNewTimestamp()
    time.sleep(5)