Чтение CSV-файла во Flask и итерация по Jinga2 - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь отобразить данные в своем веб-приложении из файла CSV с помощью Flask.Приведенный ниже код считывает мой CSV-файл и назначает биржу в качестве переменной для моих данных.В приведенном ниже HTML-коде, используя логику jinga, я перебираю список акций, однако мои столбцы CSV возвращаются в виде строк (см. Пример выходных данных и рис.).Как правильно отобразить строки?

Моя функция python:

@app.route('/stocks')
def Stocks():
    filename = 'stock_scraper - dev.csv'
    data = pandas.read_csv(filename, header=0)
    stocklist = list(data.values.flatten())
    return render_template('stocks.html', stocklist=stocklist)

Мое веб-приложение для перебора списка акций:

            <table class="table table-striped table-sm">
              <thead>
                <tr>
                  <th>#</th>
                  <th>Ticker</th>
                  <th>Closing Price</th>
                  <th>Closing Date</th>
                </tr>
              </thead>
              <tbody>
                {% for eachstocks in stocklist%}
                <tr>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                  <td>{{ eachstocks }}</td>
                </tr>
                {% endfor %}
              </tbody>
            </table>

Выход: table

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Хакс, я удалил вложенный цикл и добавил положение списка в каждом значении, чтобы исправить это.Работает сейчас.

          <tbody>
            {% for value in stocklist %}
                <tr>
                  <td>{{ value[0] }}</td>
                  <td>{{ value[1] }}</td>
                  <td>{{ value[2] }}</td>
                  <td>{{ value[3] }}</td>
                </tr>
            {% endfor %}
          </tbody> 

вывод введите описание изображения здесь

0 голосов
/ 24 февраля 2019

Вы не должны сгладить список.

Попробуйте:

@app.route('/stocks')
def Stocks():
    filename = 'stock_scraper - dev.csv'
    data = pandas.read_csv(filename, header=0)
    stocklist = list(data.values)
    return render_template('stocks.html', stocklist=stocklist)

Затем для шаблона Jinja:

            <table class="table table-striped table-sm">
              <thead>
                <tr>
                  <th>#</th>
                  <th>Ticker</th>
                  <th>Closing Price</th>
                  <th>Closing Date</th>
                </tr>
              </thead>
              <tbody>
                {% for value in stocklist%}
                <tr>
                  <td>{{ value[0] }}</td>
                  <td>{{ value[1] }}</td>
                  <td>{{ value[2] }}</td>
                  <td>{{ value[3] }}</td>
                </tr>
                {% endfor %}
              </tbody>
            </table>
...