【发布时间】:2022-07-19 06:17:49
【问题描述】:
我想检查import pdblp 是否处于活动状态,如果不是exit 会话。
我从这个链接 (Bloomberg Anywhere + pdblp or xbbg + not logged in) 注意到一个会话:
- 保持登录状态 3 天。
- 如果在另一台电脑上打开会话,则会注销。
因此,我想像这样实现try-execpt 块:
import pdblp
# check if connected
try:
con = pdblp.BCon(timeout=5000)
con.start()
except Exception as e:
print('not logged in:', e)
我的问题是,以上内容是否足以验证连接?
(即上面会抛出一个错误,e)。
【问题讨论】:
-
如果您在终端未连接时启动会话,API 会返回一条消息,指出无法连接。我不熟悉python API,所以我不知道它是否会解析消息并抛出异常。测试起来应该不会太难。
-
所以您有一个正在运行的 Python 应用程序,并且想查看在启动时初始连接后彭博连接是否已断开?
-
@DS_London,是的,这是正确的。事实上,我想在尝试提取数据之前保证连接(或退出),否则有返回空数据的风险,因此在此过程中稍后会生成空白数据帧或 csv。
-
如果您使用基本级别的 Bloomberg Python api,您必须编写代码来处理对请求的响应,而像 xbbg 这样的包装器会为您执行此操作。使用低级 api 可以为您提供更丰富的错误数据,还可以让您查看“系统”事件(例如 SESSION_STATUS 消息)。因此,在低级别,您可以在发出请求之前检查消息队列中的任何系统消息。或者,只需尝试为您知道存在的股票代码请求少量参考数据。 data.bloomberglp.com/professional/sites/10/2017/03/…
-
我不是从股票代码请求数据,所以这种方法行不通。我正在向
BSRCH()函数请求列表。因此,如果not connected,则存在返回空列表的风险。因此,我想非常具体地验证if connected或if not connected。
标签: python try-except bloomberg