Retrieving datatype name using retName=True in DSWS

Tried retName=True keyword argument to retrieve datatype name but it's not working. What is wrong with this code?

df_ind=ds.get_data (tickers='TOKYOSE', fields=["A18PE"], start="2018-01-31", freq="M", retName=True)

df_ind

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @tserenbat.uyanga

    I am using DatastreamDSWS-1.0.8. When setting retName to True, it will print the datatype name on the screen.

    image

    You can use another library, such as PyDatastream.

    from pydatastream import Datastream
    DS = Datastream(username="username", password="password")
    res, meta = DS.fetch(['TOKYOSE'], fields=['A18PE'], date_from='2018-01-31',freq='M', return_metadata=True)
    meta['DataTypeNames']['A18PE']

Answers

  • Thank you very much for the comment. I was able to display datatype name.

    Is there anyway to retrieve this datatype name when export it to Excel as csv.

    I tried following but couldn't get the name in the csv.image

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @tserenbat.uyanga

    You have two options:

    1. Use PyDatastream and then rename the column name

    res, meta = DS.fetch(['TOKYOSE'], fields=['A18PE'], date_from='2018-01-31',freq='M', return_metadata=True)
    res.rename(columns = {'A18PE':meta['DataTypeNames']['A18PE']}, inplace = True) 
    res

    2. If you still use DatastreamDSWS, the process is quite complex and prone to error. First, you need to redirect the output to a variable. Then, convert the output to JSON, retrieved the data type name, and rename the column name

    import sys
    import io
    import json
    old_stdout = sys.stdout
    new_stdout = io.StringIO()
    sys.stdout = new_stdout
    df_ind=ds.get_data (tickers='TOKYOSE', fields=["A18PE"], start="2018-01-31", freq="M", retName=True)
    output = new_stdout.getvalue()
    sys.stdout = old_stdout 
    metadata = json.loads(output.replace("'","\""))
    df_ind.rename(columns = {'A18PE':metadata["A18PE"]}, inplace = True) 
    df_ind