2017-12-17 12 views
0

私はデータベースから単一のSQLiteの選択肢を追加しようとしていますが(連結していない)、値をリストとして返して連結します。 私は "total = users + values"という行を見ています。 私はモックストックポートフォリオ取引を管理するウェブフラスコアプリを開発しています。助けてください! 、 「ユーザー」表の「現金」の列は数値で、luochenhuanはsqlite3.Cursorオブジェクトを返しますsqlite3.execute、コメントで指摘したように「ポートフォリオ」テーブルの「株式」と「価格」欄には、INTEGERおよびNUMERICPythonでSQLiteデータベースを選択する方法

users = db.execute("SELECT cash FROM users WHERE id = :id", id=session["user_id"]) 
portfolio = db.execute("SELECT * FROM portfolio WHERE id = :id", id=session["user_id"]) 

values = 0 
total = users 
if portfolio: 
    for each in portfolio: 
     values= values + (each.shares * each.price) 
     total = users + values 

#value = usd(total) 
value = users 
return render_template("index.html", stock=portfolio, user=users, value=value) 
+0

あなたの 'ユーザ '変数は' sqlite3.Cursor'オブジェクトです。 'total'もそうです。あなたは 'sqlite3.Cursor'と 'float'を追加しようとしていますが、 'total = users + values'も実行可能ではないと思います。 – luochenhuan

答えて

1

ですしたがって、userportfolio変数は実際にはカーソルであり、反復可能な値のコレクションではありません。これらを反復可能にするには、結果リストを返すために、.fetchall()メソッドを呼び出す必要があります。

これを実行すると、これらのリストの各結果は、SQLiteデータベースの行を表すタプルになります。名前付き属性を持つプロパティーは表示されません。したがって、興味のある値を取得するには、インデックスでアクセスするか、Collections.namedtupleインスタンスにロードして名前付き属性でアクセスする必要があります。

+0

私の間違いを明確にしていただきありがとうございます。 [{'' id ':1、' username ':' truth '、' hash ':' PassW0rd '}カーソルオブジェクトはJSON形式のオブジェクトを括弧で囲んで返します。 '}] – tiff

関連する問題