下記のコードでrowsにrequestで送らてきたc_idに該当するデータをClientMasterモデルのテーブルから抽出してrowsに格納したいが、エラーがでて実行されない。
rowsをprintしてみると以下のような形でデータがはいっていた。カラムは3つあるのにex_idが取れていない状況で、かつこのデータの形だと次のfor文が実行されない。
rows[<ClientMaster 99290702E4, b14de99aeef>
web上でググってみるが...個人的にはdictは関係がないと思っています。
https://stackoverflow.com/questions/8657508/strange-sqlalchemy-error-message-typeerror-dict-object-does-not-support-inde
エラー文の意図を正確に読み取れていないかもしれません。
どこが間違っているのか? どこをどう調査していけばよいのかご教示頂けませんでしょうか?
python3
1from c.models import session, ClientMaster 2 3def get_database(c_id): 4 5 rows = session.query(ClientMaster).filter(ClientMaster.c_id=c_id).all() 6 print('rows' + str(rows)) 7 e_id_db = [row[0] for row in rows] 8
dbのmodel
class ClientMaster(db.Model): __tablename__ = 'clientmaster' c_id = db.Column(db.String(255), primary_key=True, nullable=False) ac_id = db.Column(db.String(255)) ex_id = db.Column(db.String(225))
エラー
File "/Users/t/local/c/c/init.py", line 102, in parse_input_request
return acc.execute_ac_batch(request)
File "/Users/t/local/c/c/url/ac/ac.py", line 102, in execute_ac_batch
e_id_db = get_database(c_id)
File "/Users/t/local/c/c/url/ac/ac.py", line 37, in get_database
e_id_db = [row[0] for row in rows]
File "/Users/t/local/c/c/url/ac/ac.py", line 37, in <listcomp>
e_id_db = [row[0] for row in rows]
TypeError: 'ClientMaster' object does not support indexing
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/06 13:54 編集
2018/08/06 14:00 編集
2018/08/06 14:13
2018/08/06 14:25
2018/08/07 00:52