Python -экстракция данных из таблицы (печать строк) - PullRequest
0 голосов
/ 29 марта 2020

Я хотел бы получить значение 'акции' из каждой строки в этой таблице. Поэтому я делаю следующее:

db = SQL("sqlite:///finance.db")
portfolios = db.execute("SELECT stock, names, SUM(shares) AS nofshares, price FROM transactions WHERE id=:id GROUP BY stock", id=session["user_id"] )
for row in portfolios:
    print(row["stock"])

, но когда я запускаю программу, я получаю всю строку и только одну из них:

{'stock': 'NKE', 'names': 'NIKE, Inc.', 'nofshares': 41, 'price': 83.23} 

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

ЭТО ФУНКЦИЯ, КОТОРАЯ РАБОТАЕТ В МОЕЙ СЕТИ:

@app.route("/sell", methods=["GET", "POST"])
@login_required
def sell():
    portfolio = db.execute("SELECT stock, names, SUM(shares) AS nofshares, price FROM transactions WHERE id=:id GROUP BY stock", id=session["user_id"])
    if request.method == "GET":
        return render_template("sell.html", portfolio=portfolio);
    if request.method == "POST":
        nofsharess = request.form.get("shares")
        symboltosell = request.form.get("symbol")
        for row in portfolio:
            if row["stock"] == symboltosell:
                if nofsharess > row["nofshares"]:
                    return apology("You dont have that many stocks to sell", 403);
        return redirect("/")
````````

THIS IS MY HTML AND WORKS FINE
````
{% block main %}
    <form action="/sell" method="post">
        <div class="form-group">
            <select autofocus class="form-control" name="symbol" placeholder="Symbol">
                <option value="" selected data-default>Symbol</option>
                {% for row in portfolio %}
              <option value=symbol >{{ row.stock }}</option>
              {% endfor %}
            </select>
        </div>
        <div class="form-group">
            <input autocomplete="off" autofocus class="form-control" name="shares" placeholder="Shares" type="number" min="1">
        </div>
        <button class="btn btn-primary" type="submit">Sell</button>
    </form>
{% endblock %}
`````

1 Ответ

0 голосов
/ 30 марта 2020

Попробуйте что-то вроде этого:

cursor = sqliteConnection.cursor()
cursor.execute("SELECT stock, names, SUM(shares) AS nofshares, price FROM transactions GROUP BY stock,names,price;")
for stock, names, nofshares, price in  cursor.fetchall():
    print(price)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...