首先,需要确保调用bloomberg API的代码正确无误。如果代码正确,则可以使用Python的pandas模块来处理返回的数据。
以下为示例代码:
import pandas as pd
import blpapi
# 创建bloomberg session和请求
session = blpapi.Session()
session.start()
session.openService('//blp/refdata')
refDataService = session.getService('//blp/refdata')
request = refDataService.createRequest('HistoricalDataRequest')
# 添加请求参数
request.set('startDate', '20190101')
request.set('endDate', '20210101')
request.getElement('securities').appendValue('AAPL US Equity')
request.getElement('fields').appendValue('PX_LAST')
# 发送请求
session.sendRequest(request)
# 处理返回数据
while True:
event = session.nextEvent(500)
if event.eventType() == blpapi.Event.RESPONSE or event.eventType() == blpapi.Event.PARTIAL_RESPONSE:
for msg in event:
if msg.hasElement('securityData'):
securityData = msg.getElement('securityData')
for field in securityData.getElement('fieldData'):
if field.isNull():
continue
print(field.getName(), field.getValue())
data = field.getValue()
data.columns = [i.name() for i in data.columns()]
data = pd.DataFrame(data.values(), columns=data.columns())
print(data.head())
elif event.eventType() == blpapi.Event.TIMEOUT:
break
session.stop()
以上代码将返回一个包含AAPL的PX_LAST字段值的pandas数据框。如果仍然出现错误,请在代码中检查请求参数和bloomberg API调用。