diff options
| -rw-r--r-- | python/bbg_helpers.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/python/bbg_helpers.py b/python/bbg_helpers.py index 8566a5d1..9cd586f6 100644 --- a/python/bbg_helpers.py +++ b/python/bbg_helpers.py @@ -56,10 +56,16 @@ def event_loop(session, request): if ev.eventType() == blpapi.Event.RESPONSE: raise StopIteration +def get_pythonvalue(e): + if e.datatype() in [blpapi.DataType.DATE, blpapi.DataType.DATETIME]: + return pd.to_datetime(e.getValue()) + else: + return e.getValue() + def field_array_todf(field): - df = pd.DataFrame.from_dict([{str(e.name()): e.getValue() for e in f.elements()} \ + df = pd.DataFrame.from_dict([{str(e.name()): get_pythonvalue(e) for e in f.elements()} \ for f in field.values()]) - return df.convert_objects(convert_dates='coerce') + return df def process_historical_msg(msg): securityData = msg.getElement("securityData") @@ -78,9 +84,9 @@ def process_reference_msg(msg): if not field.isValid(): logger.info("Invalid field: {0}".format(str(field))) elif field.isArray(): - row[str(field.name())] = field_array_todf(field) #to convert dates to timestamps + row[str(field.name())] = field_array_to_df(field) #to convert dates to timestamps else: - row[str(field.name())] = field.getValue() + row[str(field.name())] = get_pythonvalue(field) data[securityName] = row return data |
