-2

我正在尝试使用 python 中的 BDS 公式提取彭博数据,并且我已经下载了 pybbg 库。我想包括几个覆盖,但我得到一个错误。我要提取的内容是使用 excel API 插件完成的: =BDS("SUBC NO Equity","PG_REVENUE","PRODUCT_GEO_OVERRIDE=G","FUND_PER=Q"= 对于一个覆盖,以下代码有效(https ://github.com/kyuni22/pybbg):

import unittest
import datetime
import pybg

class TestPybbg(unittest.TestCase):
    def test_bds(self):
        tester = pybbg.Pybbg()
        data = tester.bds('SUBC NO Equity','PG_REVENUE',overrides={'FUND_PER': 'Q'})
        print(data)

if __name__ == '__main__':
    unittest.main()

如果公司没有该级别的详细信息,则会出现以下错误:

Traceback (most recent call last):
  File "C:/Users/bloomberg/.spyder-py3/temp.py", line 23, in test_bds_override
    data = tester.bds('AKSO NO Equity','PG_REVENUE',overrides={'PRODUCT_GEO_OVERRIDE':'G','FUND_PER':'Q'})
  File "C:\Users\bloomberg\AppData\Local\Continuum\Miniconda3\envs\work\lib\site-packages\pybbg-0.0.1-py3.6.egg\pybbg\pybbg_k.py", line 295, in bds
    fieldData = securityData.getValue(i).getElement("fieldData").getElement(field)
  File "C:\Users\bloomberg\AppData\Local\Continuum\Miniconda3\envs\work\lib\site-packages\blpapi\element.py", line 347, in getElement
    _ExceptionUtil.raiseOnError(res[0])
  File "C:\Users\bloomberg\AppData\Local\Continuum\Miniconda3\envs\work\lib\site-packages\blpapi\exception.py", line 145, in raiseOnError
    _ExceptionUtil.raiseException(errorCode, description)
  File "C:\Users\bloomberg\AppData\Local\Continuum\Miniconda3\envs\work\lib\site-packages\blpapi\exception.py", line 137, in raiseException
    raise errorClass(description, errorCode)
blpapi.exception.NotFoundException: Attempt to access unavailable sub-element 'PG_REVENUE' of element 'fieldData'. (0x0006000d)
4

1 回答 1

0

我想通了,如果您将以下内容添加到公式中,您可以包含几个覆盖:

data = tester.bds('SUBC NO Equity','PG_REVENUE',overrides={'PRODUCT_GEO_OVERRIDE':'G','FUND_PER':'Q'})
于 2017-08-09T08:54:49.223 回答