データの追加
- はじめに
ここまでの作業で、「証券コード」と「会社名」の対応ができた。これだけではただの対応表に過ぎない。実際に株式売買を支援するためには更なるデータの追加が必要になる。会社に紐づくデータとして単元株数がある。証券コードから単元株数を索引出来るようにするためにこの単元株数をtbl_companyに追加するが、せっかくなので新しいテーブル、tbl_company_orgを作成する。 - テーブルの作成
tbl_companyと同様に表の骨組みを作成する。表のイメージは以下の通り、company_code company_name round_lot 証券コードに対応した単元株を右端に埋めていくイメージになる。これを行うためにpythonでスクリプトを書くことにする。ここで最初に少し触れたjsmを利用することになる。
- jsmの利用
jsmでは様々なファイナンスのデータを取得することができるが、単元株もround_lotとして取得可能である。tbl_companyで記載されている証券コードを入力して、それに対応した会社の単元株を取得し、その情報と合わせてtbl_company_orgにデータをインサートしていく。123456789101112131415161718192021222324252627282930313233343536373839404142434445# -*- coding: utf-8 -*-"""Created on Thu Jun 25 13:52:04 2015@author: ooo"""import jsmimport datetimeimport numpyimport sysimport MySQLdb# Databaseconnector = MySQLdb.connect(db="sdb", user="root", passwd="root", charset="utf8")cursor = connector.cursor(MySQLdb.cursors.DictCursor)sql_str = 'select * from tbl_company'cursor.execute(sql_str)result = cursor.fetchall()# jsmq = jsm.Quotes()n = 0for row in result:ccInt = row['company_code']ccName = row['company_name']try:finance = q.get_finance(ccInt)except:print "%04d - Could not get data." % (n)else:roundLot = finance.round_lot# print "%04d - %04d - %s " % (n, ccInt, ccName),sql_str = "insert into tbl_company_org (company_code, company_name, round_lot) values(%d, '%s', %d);" % (ccInt, ccName, roundLot)print sql_strcursor.execute(sql_str)connector.commit()n = n + 1cursor.close()connector.close()print "%d -- End" % (n)
Leave a Reply