diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2011-10-14 01:11:41 +0200 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2011-10-14 01:11:41 +0200 |
| commit | 2275d3d22d9cc40f2b90ef33d403f2a8535dc7cd (patch) | |
| tree | ae33beb6dc072865597531d8a6e099519d5a99aa | |
| parent | 4edb2516e2c6bf2efab3f30f1a70dfc35b4b0f51 (diff) | |
| download | bandit-2275d3d22d9cc40f2b90ef33d403f2a8535dc7cd.tar.gz | |
Load all the data from csv file into the database
Change in the database schema, volume is now a float,
update your database consequently
| -rw-r--r-- | database.py | 25 | ||||
| -rw-r--r-- | database.sql | 2 |
2 files changed, 20 insertions, 7 deletions
diff --git a/database.py b/database.py index c00ccd8..e29887a 100644 --- a/database.py +++ b/database.py @@ -22,22 +22,35 @@ def addTickerHistory(name, handler, cursor, conn): cursor.execute("SELECT stockid FROM stock WHERE ticker=%s",(name,)) if cursor.rowcount == 0: cursor.execute("INSERT INTO stock(ticker) VALUES (%s) RETURNING stockid",(name,)) - conn.commit() id = cursor.fetchone()[0] else: - id = cursor.fetchone()[0] - + id = cursor.fetchone()[0] + def clean(field): if field == "NA": return None + else: + return field for row in handler: - cursor.execute("INSERT INTO history(date, stockID, open) VALUES (%s, %s, %s)", - (row['Date'], id, row['Open'])) + for (key, value) in row.items(): + row[key] = clean(value) + + cursor.execute("INSERT INTO history(date, stockID, open, high, low," + "close, volume, adjClose, div, adjDiv, split) " + "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", + (row['Date'], id, row['Open'], row['High'], row['Low'], + row['Unadj.Close'], row['Volume'], row['Close'], + row['Div'], row['Adj.Div'], row['Split'] ) ) conn.commit() if __name__ == '__main__': + + if len(argv) != 5: + print argv[0], "<database> <user> <passwd> <filename>" + exit(1) + database = argv[1] user = argv[2] password = argv[3] @@ -46,7 +59,7 @@ if __name__ == '__main__': filename = argv[4] handler = open(filename,"r") - ticker = splitext(basename(filename))[0] + ticker = splitext(basename(filename))[0] #get the ticker from the filename csvHandler = csv.DictReader(handler) addTickerHistory(ticker, csvHandler, cursor, conn) diff --git a/database.sql b/database.sql index d5cb31d..8081b4f 100644 --- a/database.sql +++ b/database.sql @@ -11,7 +11,7 @@ CREATE TABLE history ( low double precision DEFAULT NULL, close double precision DEFAULT NULL, adjClose double precision DEFAULT NULL, - volume integer DEFAULT NULL, + volume double precision DEFAULT NULL, div real DEFAULT NULL, adjDiv real DEFAULT NULL, split real DEFAULT NULL, |
