summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2011-10-14 01:11:41 +0200
committerThibaut Horel <thibaut.horel@gmail.com>2011-10-14 01:11:41 +0200
commit2275d3d22d9cc40f2b90ef33d403f2a8535dc7cd (patch)
treeae33beb6dc072865597531d8a6e099519d5a99aa
parent4edb2516e2c6bf2efab3f30f1a70dfc35b4b0f51 (diff)
downloadbandit-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.py25
-rw-r--r--database.sql2
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,