如何在 while 循环中评估函数
How to evualate a function in a while loop
我正在尝试在比较两个值的同时实时传输数据。但是,似乎该函数只被评估一次。但是,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
在 运行 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.
我正在尝试在比较两个值的同时实时传输数据。但是,似乎该函数只被评估一次。但是,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
在 运行 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.