import sqlite3 def create(): conn = sqlite3.connect('kv.db') c = conn.cursor() # create with index c.execute('''CREATE TABLE IF NOT EXISTS kv (key text, value text, PRIMARY KEY(key))''') conn.commit() conn.close() def set(key, value): conn = sqlite3.connect('kv.db') c = conn.cursor() # check table c.execute('''SELECT name FROM sqlite_master WHERE type='table' AND name='kv' ''') result = c.fetchone() if not result: create() # create with index c.execute('''INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)''', (key, value)) conn.commit() conn.close() def get(key): conn = sqlite3.connect('kv.db') c = conn.cursor() # check table c.execute('''SELECT name FROM sqlite_master WHERE type='table' AND name='kv' ''') result = c.fetchone() if not result: create() # create with index c.execute('''SELECT value FROM kv WHERE key=?''', (key,)) result = c.fetchone() conn.commit() conn.close() if result: return result[0] else: return None def delete(key): conn = sqlite3.connect('kv.db') c = conn.cursor() # check table c.execute('''SELECT name FROM sqlite_master WHERE type='table' AND name='kv' ''') result = c.fetchone() if not result: create() # create with index c.execute('''DELETE FROM kv WHERE key=?''', (key,)) conn.commit() conn.close()