Skip to content

Error while trying to get calendars data #56

@Jacques2101

Description

@Jacques2101

Hi,
i am trying to get calendar data but get an error.

This is my code :

from blp import blp
import pandas as pd

# Lancer la requête Bloomberg BQL
start = '-5d'
end = '0d'
countries = ['US', 'FR', 'EZ', 'DE']

# convertir en chaîne compatible BQL
country_str = "[" + ",".join([f'"{c}"' for c in countries]) + "]"

query = f"""
GET(Calendar) FOR ({country_str}) 
WITH(Dates=Range({start}, {end}), relevancy=VERY_HIGH, VIEW=Extended)
"""
bquery = blp.BlpQuery().start()
df = bquery.bql(query)

df 

this is the error message I get:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[4], line 17
     12 query = f"""
     13 GET(Calendar) FOR ({country_str}) 
     14 WITH(Dates=Range({start}, {end}), relevancy=VERY_HIGH, VIEW=Extended)
     15 """
     16 bquery = blp.BlpQuery().start()
---> 17 df = bquery.bql(query)
     19 df 

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:876, in BlpQuery.bql(self, expression, overrides, options)
    866 query = create_bql_query(expression, overrides, options)
    868 bql_parser = BlpParser(
    869     processor_steps=[
    870         BlpParser._clean_bql_response,
   (...)    873     ]
    874 )
--> 876 df = self.query(query, bql_parser, self.collect_to_bql)
    878 df = df[["id", "field", "secondary_name", "secondary_value", "value"]]
    880 df = df.rename(columns={"id": "security"})

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:648, in BlpQuery.query(self, request_data, parse, collector, timeout)
    646 res = itertools.chain.from_iterable(res)  # type: ignore
    647 if collector:
--> 648     res = collector(res)
    649 return res

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:888, in BlpQuery.collect_to_bql(self, responses)
    886 data = []
    887 fields = {"secondary_name", "secondary_value", "field", "id", "value"}
--> 888 for field in responses:
    889     field_df = pandas.DataFrame(field)
    891     id_vars = ["field", "id", "value"]

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:645, in <genexpr>(.0)
    643 request = self.create_request(request_data)
    644 self.send_request(request, data_queue)
--> 645 res = (parse(data, request_data) for data in self.get_response(data_queue, timeout))
    646 res = itertools.chain.from_iterable(res)  # type: ignore
    647 if collector:

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:1413, in BlpParser.__call__(self, response, request_data)
   1300 """A default parser to parse dictionary representation of response.
   1301 
   1302 Parses data response to a generator of dictionaries or raises a TypeError if the response type is unknown.
   (...)   1410 
   1411 """
   1412 for processor in self._processor_steps:
-> 1413     response = processor(response, request_data)
   1415 rtype = list(response["message"]["element"].keys())[0]
   1416 if rtype == "ReferenceDataResponse":

File c:\Users\JacquesTebeka\miniforge3\envs\data\Lib\site-packages\blp\blp.py:1211, in BlpParser._validate_response_error(response, request)
   1209 rtype = list(response["message"]["element"].keys())[0]
   1210 if "responseError" in response["message"]["element"][rtype]:
-> 1211     raise TypeError(f"Response contains responseError\nresponse: {response}\nrequest: {request}")
   1212 return response

TypeError: Response contains responseError
response: {'eventType': 5, 'eventTypeName': 'blpapi.Event.RESPONSE', 'messageNumber': 0, 'message': {'fragmentType': 0, 'correlationIds': [44], 'messageType': 'result', 'timeReceived': Timestamp('2025-11-06 09:11:12.987586+0000', tz='UTC'), 'element': {'BQLResponse': {'results': None, 'universeTransparency': None, 'ordering': None, 'responseTiming': None, 'dotString': None, 'versionInfo': None, 'clientContext': {'appName': '', 'clientRequestId': None, 'timestamp': None, 'extraMarkers': []}, 'screenCounts': None, 'responseError': 'Error occurred during request processing.'}}}}
request: {'sendQuery': {'expression': '\nGET(Calendar) FOR (["US","FR","EZ","DE"]) \nWITH(Dates=Range(-5d, 0d), relevancy=VERY_HIGH, VIEW=Extended)\n'}}

Even when i treid a simple code as this I get an error message:

from blp import blp
import pandas as pd
bquery = blp.BlpQuery().start()
df = bquery.bql("get(px_last) for(['IBM US Equity', 'AAPL US Equity'])")
df

Thx for your help

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions