2017-10-24 1 views
0

나는 (API에 의해 서버에서 가져온) 업데이트 된 타임 스탬프를 인쇄하려고하는 매우 간단한 Python 스크립트가 있습니다. n 초입니다.서버에서 가져온 타임 스탬프를 업데이트하는 방법은 무엇입니까?

import FinexAPI 
import time 

와 서버의 타임 스탬프를 얻을 수있는 변수를 설정 :

사용자 정의 모듈 (FinexAPI) 및 시간 모듈을 가져온 후

ticker = FinexAPI.ticker() 
when = float(ticker['timestamp']) 

을 나는 수행하는 경우 :

print when 

나는 타임 스탬프를 최신으로 업데이트하고 있습니다. 다시 수행하면 새로운 업데이트 된 타임 스탬프를 볼 수 있습니다. 지금까지 전혀 문제가 없습니다.

def getNewTimestamp(): 
    print when 
    time.sleep(5) 

while True: 
    getNewTimestamp() 

하지만이 코드와 내가 같은 타임 스탬프를 5 초마다납니다 :

이제 내가 "업데이트 된 타임 스탬프 인쇄"5 초마다 수행해야 가정하자. 나는 문제가 내가 getNewTimestamp 함수 밖에서 when을 정의한다고 가정하기 때문에 기본적으로 동일한 비 - 업데이트 타임 스탬프를 계속 인쇄한다. 그러나 함수 내에서 함수를 정의하더라도 타임 스탬프에 대한 업데이트가 없습니다.

내가 생각하고있는 또 다른 사항은 while 루프가이 시나리오에서 최상의 선택이 아니라는 것입니다. 그러나 그것은 다른 이야기 일 것입니다 (제 생각에는 ...). 누군가 내가 무엇을 잘못하고 있으며 5 초마다 업데이트 된 타임 스탬프를 얻고 인쇄하는 가장 좋은 방법은 무엇인지 알아낼 수 있습니까?

답변

0

당신은 루프에서 API를 호출 할 수있다 : 당신이 왕입니다

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

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

! 이렇게 간단했습니다. 감사합니다. +1을주었습니다. – mosf

관련 문제