2017-07-29

pythonでsqlite3を利用してデータを挿入する

メモがてら。

Pythonによるスクレイピング・機械学習&開発テクニックから。
sqlite3にデータを挿入するところまで。





import sqlite3

dbpath = 'test.sqlite'
conn = sqlite3.connect(dbpath)

cur = conn.cursor()
cur.executescript("""
/* items 手0ブルがすでにあれば削除する*/
DROP TABLE IF EXISTS items;

/* テーブルの作成*/
CREATE TABLE items(item_id INTEGER PRIMARY KEY, name TEXT UNIQUE, price INTEGER);

/* データを挿入*/
INSERT INTO items(name,price) VALUES ("Apple",800);
INSERT INTO items(name,price) VALUES ("Orange",780);
INSERT INTO items(name,price) VALUES ("Banana",430);

""")

#上記の操作をデータベースに反応させる

conn.commit()

#データを抽出sる

cur = conn.cursor()
cur.execute("SELECT name FROM items")
item_list = cur.fetchall()
print("item_list:",item_list) #配列を返す
#1行ずつ表示

for it in item_list:
    print(it)





sqlite3に次は複数挿入できるまでのコード
"""
* sqlite3に複数の項目を追加する
* slqでWHERE条件で引き出す
"""


import sqlite3

#データベースに接続
filepath = "test2.sqlite"
conn = sqlite3.connect(filepath)

#手0ブルを作成
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS items")
cur.execute(""" CREATE TABLE items (
 item_id INTEGER PRIMARY KEY,
 name TEXT,
 price INTEGER)""")
conn.commit()


#単発でデータを挿入
cur = conn.cursor()
cur.execute(
 "INSERT INTO items (name, price) VALUES (?,?)",
 ("Orange", 520))
conn.commit();

#連続でデータを挿入

cur = conn.cursor()
data = [("Mango",770),("Kiwi",400),("Grape",800)]
cur.executemany(
 "INSERT INTO items(name,price) VALUES (?,?)",data
 )
conn.commit()

# 400-700円のデータを抽出して表示

cur = conn.cursor()
price_range = (400,700)
cur.execute(
 "SELECT * FROM items WHERE price >=? AND price<=?",price_range
 )
fr_list = cur.fetchall()
for fr in fr_list:
 print(fr)

注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...