这是需要调整资料库连线资讯,修改成符合MySQL的格式。
本次也会参考《【Day10】Azure资料库#2:建立SQL server资料表》以及《【Day16】每日资料汇入资料库》这两篇文章。
至於Python的使用,可以参考前面系列,这边就不再多说如何用pipenv
和安装套件。
在《【Day10】Azure资料库#2:建立SQL server资料表》,是先手动输入台积电资料进入资料库,这边我们也先跟着做。毕竟先把Azure的依赖改成MySQL,之後再介绍取得上市公司的基本资料。所以就手动输入台积电资料罗~
所以结果如下:
使用《【Day16】每日资料汇入资料库》的方法,汇入资料,其中需要把连结改掉。
所以要删除save_data_to_azure_db(stock_data)
这个function,改建立save_data_to_mysql_db()
:
def save_data_to_mysql_db():
db_settings = {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"password": "pwd",
"db": "finance",
}
# 计数器:计算新增了几笔
counter = 0
try:
# 建立connection物件
conn = pymysql.connect(**db_settings)
# 建立cursor物件
with conn.cursor() as cursor:
now = datetime.datetime.now().strftime("%Y-%m-%d")
# 新增SQL语法
for _, row in df.iterrows():
try:
cmd = """INSERT INTO DailyPrice
(StockID, Symbol, TradeDate, OpenPrice, HighPrice, LowPrice,
ClosePrice,Volumn)
values(%s,%s,%s,%s,%s,%s,%s,%s);"""
cursor.execute(
cmd,
(
None,
row.stock_symbol,
now,
row.open if pandas.notnull(row.open) else 0,
row.high if pandas.notnull(row.high) == float("nan") else 0,
row.low if pandas.notnull(row.low) == float("nan") else 0,
row.close if pandas.notnull(row.close) == float("nan") else 0,
row.volume if pandas.notnull(row.volume) == float("nan") else 0,
),
)
conn.commit()
counter += 1
except Exception as e:
print(e)
except Exception as exc:
print(exc)
return False
return True
其中row.open if pandas.notnull(row.open) else 0
是用来判断该资料是否为None
,如果为空值,就给0
。
接下来开始我们真正的新内容罗
<<: [Day04] JavaScript - ES6 模板字符串 (Template Literal)
>>: 组织可以在稽核的时侯,向供应商索取 ISMS 相关文件吗?
Kubeview 是 Kubernetes 的资源可视化工具,主要功能为通过直观的 UI 和各资源相...
1. 静态型别 VS. 动态型别 1.1 静态型别的例子 以Java为例: int x 在宣告x变数...
前言 如果只有画面像的话,那也太弱了吧! 赶紧来实作新增闹钟的功能,做完拿去炫耀给边身边的人看! 实...
中国银行长城跨境通卡,产品全称中国银行长城跨境通国际借记卡,可能是目前唯一能够自由办理的国际借记卡。...
前言 当我们要使用机器学习演算法来解决自然语言的问题,我们首先必须将文字进行量化( quantifi...