2017年03月02日

SQLite3 小技 fetchall()

SQLiteは便利ですよねぇ。
辞書では物足りないが、いちいちclass定義するのもなんだかな、という時とか
中断データ作る時とか、色々便利。:memoryにしておけばファイルも作らなくていいから、
集計とかにもいいですよね。

エクセルなのにエクセルで集計できんレイアウトになってたりしても
python+xlrd+SQLite3でど根性集計もできる。脱線した。

で、技というか 1カラムしかselectしない時は、いちいちタプルで渡してくれなくてもいいので

c.execute("select filepath from master")
row =[str(item[0]) for item in c.fetchall()]

こんな感じでタプルを解除してしまえば、

for r in row:
  func(r)

みたいな感じで後続が楽、という話さ。

検索結果がA,B,Cとした場合、[(u'A',),(u'B',),(u'C',)] と帰ってきてしまう(タプルの配列になる)ので、
['A','B','C']と入れ替えてるだけです。(タプル外して、unicodeも解除)

fetchallできないような巨大な応答とかはコツコツカーソルを動かして頑張るしかないですが。


参考リンク



posted by koteitan at 14:12| Comment(0) | python | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。