標題のとおりです。最近、たまにインターンの人が引っかかっているのを見るので。
tekito.py
s = Session()
names = s.query(SomeTable.name).filter(SomeTable.id.in_([1, 2, 3])).all()
Session.remove()
# flaskでjsonにして返す
# return jsonify({'names': names})
これ、returnする前にnamesをprintすると…
[('taro',), ('jiro',), ('sabu',)]
ファッ!?
まあ、一般にはSQLで一つだけを取ってくるということは少なく、複数の項目を取ってきたときにはタプルになるのが自然なので分かるのですが、取得項目が一つでも、要素数1のタプルになります。ご注意下さい。
ただのリストにしたい場合は[name[0] for name in names]
など。