实时触发股价变化?

2024-04-19 19:57:44 发布

您现在位置:Python中文网/ 问答频道 /正文

作为一个类的例子,我试图找出最健壮的方法来创建一个热的Observable,它为给定的股票代码发出当前的价格,但只有当它改变时才发出价格。我自己能想到的最好办法就是创建一个间隔源Observable,它每3秒查询一次googlefinance,解析出价格,并且只有在值通过distinct_until_changed()发生变化时才会向前推。你知道吗

from threading import Semaphore

from rx import Observable
from googlefinance import getQuotes
import json


Observable.interval(3000) \
    .map(lambda i: json.dumps(getQuotes('AAPL'))) \
    .map(lambda s: json.loads(s)[0]) \
    .map(lambda dict: float(dict["LastTradePrice"])) \
    .distinct_until_changed() \
    .subscribe(print)

sema = Semaphore(0)

sema.acquire()

有没有人知道一种更有效的方法来做到这一点,不必每隔一段时间重新查询,而是在价格实际发生变化时触发源代码?如果它过于复杂,需要一些专门的图书馆,我会坚持我所拥有的。我只是觉得我错过了一个更好的方法。。。你知道吗


Tags: 方法lambdafromimportjsonmap价格dict