diff options
Diffstat (limited to 'database.py')
| -rw-r--r-- | database.py | 25 |
1 files changed, 19 insertions, 6 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) |
