2011-10-31
複数のSqlite dbファイルにある同じ構造のテーブルからデータを抽出するメモ
#!/usr/bin/env python # -*- coding: utf-8 -*- import sqlite3 import csv writer = csv.writer(file('result.csv','w'),lineterminator="\n",quoting = csv.QUOTE_ALL) con = sqlite3.connect(':memory:') cur = con.cursor() sql2 = "SELECT * FROM (SELECT * FROM tweet" for i in xrange(1,10): #dbファイルの数 sql = "ATTACH DATABASE 'tweet%d.db' as tweet%d" % (i,i) con.execute(sql) con.commit() sql2 = sql2 + """ UNION ALL SELECT * from tweet%d.tweet""" % (i) sql2 = sql2 + ") t WHERE created_at >= datetime(?) AND created_at < datetime(?)" for row in cur.execute(sql2,('2011-10-01','2011-10-03')): try: writer.writerow([col.encode('s-jis') if isinstance(col, unicode) else col for col in row]) except: pass cur.close() con.close()
それぞれに同じ構造のテーブルtweetがある。
created_atカラム(日付)でのデータ絞込み。
lineterminator="\n"
はレコード毎に空白行ができてしまう現象を防ぐための措置。
コメント
はてなブックマークでのコメント (1 + 0)
トラックバック - http://d.hatena.ne.jp/yadokari23/20111031/1320062557
リンク元
- 2 http://d.hatena.ne.jp/keyword/Python
- 2 http://ezsch.ezweb.ne.jp/search/?query=ツイッター+サブ垢&start-index=6&adpage=3&ct=1301&sr=0000&t=20111102084754&filter=1
- 2 http://ezsch.ezweb.ne.jp/search/?sr=0101&query=ツイッター サブアカ
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=twitter%E3%80%80%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%80%80%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88&source=web&cd=1&ved=0CCIQFjAA&url=http:
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=twitter トレンド ガジェット&source=web&cd=1&ved=0CCMQFjAA&url=http://d.hatena.ne.jp/yadokari23/20110614/1313978722&ei=-EawT
- 1 http://b.hatena.ne.jp/t/bookmarklet?sort=eid&of=275
- 1 http://d.hatena.ne.jp/keyword/はてなブックマークエントリー情報取得API
- 1 http://k.hatena.ne.jp/keywordblog/Python
- 1 http://search.yahoo.co.jp/search?p=SQL+LIMIT/OFFSET&aq=-1&oq=&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 1 http://search.yahoo.co.jp/search?p=sqlitedb&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=