Skip to main content

JSON data is refused by Lightweight Charts

I want to use LightWeight Charts by TradingView. I process data with Python and serve it via Flask to JSON:

from flask import Flask, jsonify, render_template
from datetime import datetime

app = Flask(__name__)


@app.route('/')
def home(name=None):
    return render_template('index.html', name=name)

@app.route('/data')
def data():
    ind_df = d.request_data(...) # dummy method
    ind_df['Date'] = ind_df['Date'].map(lambda t: int(t.timestamp()))
    ind_df = ind_df.set_index('Date')
    return jsonify(ind_df.to_dict())

then I have index.json:

// Create the Lightweight Chart within the container element
const chart = LightweightCharts.createChart(
  document.getElementById('container')
);

// Create the Main Series (Candlesticks)
const mainSeries = chart.addCandlestickSeries();


fetch('/data')
  .then(response => response.json())
  .then(data => {
    // use the data to create a visualization
    console.log(data)

    mainSeries.setData(data);
  });

my data is succesfully logged in console but I have "uncaught type error" to chart.

The question is in what shape does LightWeight Charts accept the data? I have a DataFrame that I will change .to_json(). The problem is about indexing.

In place of

          {
            time: "2018-10-19",
            open: 180.34,
            high: 180.99,
            low: 178.57,
            close: 179.85,
          }

I have:

{ "Open":
     { "epoch1": value1,
       "epoch2": value2,
       "epoch3": value3,
       ...
     },
   "Close:
      ...
}

How should I convert my data?

Via Active questions tagged javascript - Stack Overflow https://ift.tt/DKUaEm3

Comments