-
Notifications
You must be signed in to change notification settings - Fork 0
/
SaveData.py
102 lines (72 loc) · 2.33 KB
/
SaveData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import EconomicData
import pandas
import time,datetime
import sqlite3
import os
import pymongo
DBName='YahooData.db'
file=open('ini/YHpath')
path=file.read()
fullDBPath=path+'/'+DBName
file.close()
now=time.time()
today=datetime.date.today()
todaystr=today.strftime('%Y/%m/%d')
yesterday=datetime.date.today()-datetime.timedelta(1)
yesterdaystr=yesterday.strftime('%Y/%m/%d')
lastFriday=datetime.date.today()-datetime.timedelta(3-datetime.date.today().weekday())
lastFridaystr=lastFriday.strftime('%Y/%m/%d')
def createPath(path=path):
if os.path.exists(path):
return
os.makedirs(path)
def saveYahooData(date=None,conn=None,mClient=None,**market):
close=False
if date==None:
date=todaystr
if conn is None:
conn=sqlite3.connect(fullDBPath)
close=True
# read dara from Yahoo
data=EconomicData.getYahooData()
for m in market.keys():
# mkdata=pandas.DataFrame([data.loc[m]],index=[market[m]])
mkdata=pandas.DataFrame(data[m],index=[market[m]])
print(m)
print(mkdata)
mkdata.to_sql(m,conn,if_exists='append')
if mClient is not None:
data[m]['index']=market[m]
mClient['YahooData'][m].insert(data[m])
if close:
conn.close()
time.sleep(5)
def readYahooDataFromSql(*market,conn=None):
close=False
if conn is None:
conn=sqlite3.connect(fullDBPath)
close=True
outData={}
for m in market:
data=pandas.read_sql('''select * FROM %s''' % m , conn)
outData[m]=data
if close:
conn.close()
return outData
def changeYahooData():
conn=sqlite3.connect(fullDBPath)
# conn.execute('''update NASDAQ set rowid = 14 where rowid == 15''')
# conn.execute('''select 'index' from HK''')
# conn.execute('''DELETE FROM NASDAQ WHERE ROWID == 14''')
# conn.execute('''DELETE FROM HK WHERE ROWID == 12''')
readYahooDataFromSql('HK','NASDAQ',conn=conn)
conn.close()
if __name__ == '__main__':
createPath()
if today.weekday() is not 0:
saveYahooData(mClient=pymongo.MongoClient(port=10001),NASDAQ=yesterdaystr,HK=todaystr)
else:
saveYahooData(mClient=pymongo.MongoClient(port=10001),NASDAQ=lastFridaystr,HK=todaystr)
# saveYahooData(NASDAQ=yesterdaystr)
# saveYahooData(HK=todaystr)
# changeYahooData()