Как вычислить функцию в цикле while - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь передавать данные в реальном времени, сравнивая два значения. Однако кажется, что функция оценивается только один раз. Однако time.sleep также выполняется, потому что он делает паузу между циклами. Однако время всегда одно и то же.

x = f'https://api.polygon.io/v1/last/stocks/SPY?{key}'
def get_data():
    time.sleep(5)
    data = requests.get(x)
    json_data = data.json()
    
    #last price, datetime object
    print ((json_data['last'])['price'], epoch_to_date_time( (json_data['last'])['timestamp'] ).__str__())
    return (json_data['last'])['price']


def while_no_match(x):
    counter = 0
    while get_data()!=x and counter < 5 :
        get_data()
        counter +=1

if __name__ == '__main__':
    while_no_match(100)
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000
316.63 2020-07-08 19:01:42.457000

1 Ответ

0 голосов
/ 09 июля 2020

после запуска get_data вручную несколько раз я получил следующие выходные данные:

316.69 2020-07-08 19:36:39.535000
316.71 2020-07-08 19:37:07.138000
316.71 2020-07-08 19:37:07.138000

Это должен быть API.

...