私は比較的簡単なことをやろうとしています。列名とそれぞれの列値を吐き出し、いくつかの列をフィルタリングして表示されないようにします。SQLAlchemy:結果で操作する
これは私が(もちろんの初期接続後)未遂ものです:
metadata = MetaData(engine)
users_table = Table('fusion_users', metadata, autoload=True)
s = users_table.select(users_table.c.user_name == username)
results = s.execute()
if results.rowcount != 1:
return 'Sorry, user not found.'
else:
for result in results:
for x, y in result.items()
print x, y
私はSQLAlchemyの上のAPI(V.5)を見てではなく、混乱していました。 'results'の 'result'はRowProxyですが、.items()の呼び出しに適切なオブジェクトが返されているとは思いません。
のは、私のテーブル構造がそうであるとしましょう:
私はフィルタリングして表示するように列名を指定したいuser_id user_name user_password user_country
0 john a9fu93f39uf usa
(私は明らかにUSER_PASSWORDを表示したいいけない) - 私はこれをどのように実現することができますか?
最初のスニペットは私が最初に思いついたものです。 2番目のスニペットでは、 "ValueError:アンパックする値が多すぎます" - hrm? –
余分な列を指定しませんでした。もう一度やり直してみましょう –
TypeError:select()は最大2つの引数をとります(4が指定されています) >> s = users_table.select(users_table.c.user_name、users_table.c.user_location、users_table.c.user_name == username) –