MENU



PythonでFFレートの取得方法【2019/08】

ども♪マコトです。

FFレートを取得するPythonのコードを作成したので記述します。

一度、CSVで加工した後に、IR_DTと言うDBを作成して格納しています。

8/14に米英で2年債と10年債の利回りが逆転しました。

今後の経済動向を予想する上で大事だと思ったので作ってみました。

# -*- coding: utf-8 -*-
#!/usr/bin/env python
import mysql.connector as sqlc
import csv
import sys
import time
import requests
from contextlib import closing

try:
    # 実行時間を測るStart
    start = time.time()
    file_name = r"C:\data\FF_Rate.csv"

    # FFレート
    URL = "https://www.federalreserve.gov/datadownload/Output.aspx?rel=H15&series=8e83f7f17c5cea4d190d85ae6737639f&lastobs=&from=&to=&filetype=csv&label=omit&layout=serieslist"

    response = requests.get(URL, stream=True,proxies=PROXIES)
    # ファイルの保存
    if response.status_code == 200:
        f = open(file_name, 'wb')
        f.write(response.content)
        f.close()

    # 編集したいファイル(元ファイル)を開く
    file = open(file_name,"r")
    # 書き出し用のファイルを開く
    out_file = open(r"C:\data\FF_Rate_Modify.csv","w")

    # 元ファイルのレコード部分をreadlinesメソッドで全行を読み取る
    lines = file.readlines()

    # for文で1行ずつ取得
    for line in lines:

        if(line[-2:]==",\n" or line[-4:]==",ND\n"):
            pass
        else:
            # ダブルコーテーションでくくる
            word = line.split(',')
            line = '"' + word[0].lstrip("H15/H15/") + '","' + word[1] + '",' + word[2]
            # 書き出し用のファイルに出力
            out_file.write(line)

    # 2つのファイルを閉じる
    file.close()
    out_file.close()

    # 編集したファイルを開く
    csv_file = open(r"C:\data\FF_Rate_Modify.csv", "r", encoding="utf_8", errors="", newline="" )

    #リスト形式
    Modifydata = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\n", quotechar='"', skipinitialspace=True)

    connect = sqlc.connect(
            user='〇〇'
            password='〇〇',
            host = '〇〇',
            database= '〇〇',
            charset='utf8'
            )

    cursor = connect.cursor()

    query = "INSERT INTO IR_DT (TICKER,DATE,DATA) VALUES (%s, %s, %s)"
    cursor.executemany(query, Modifydata)

except sqlc.Error as error:
    connect.rollback()
    print ("エラー",error)
except Exception:
    e = sys.exc_info()[1]
    print("エラー",e.args)
else:
    cursor.close()
    connect.commit()
    connect.close()
    # 編集したファイルを閉じる
    csv_file.close()
finally:
    # 実行時間を測るEnd
    elapsed_time = time.time() - start
    print ("処理時間:{0}".format(elapsed_time) + "[sec]")

今、松井証券、DMM、でお得なキャンペーンが行われています。
相場が低迷している今こそ小さな金額から投資を始めるのはいいかもしれません。

松井証券FX 新規口座開設獲得プロモーション
漫画★全巻ドットコム
【DMM FX】入金
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次