心ゆく日並

辛さを辛味に、苦しみを苦味に転じら れればこの日々も味わい深い

Python プログラム

EDINETのAPIを使って企業の財務情報を取得する①:PythonとEDINETのAPIを使って提出書類一覧をCSVで取得する

更新日:

ども♪マコトです。

EDINETが提供しているAPIで財務情報を取得するプログラムを作ってみました。

その1です。

まずは1日に提出されている財務情報を一括で取得したいので、1日に提出される書類一覧を取得するプログラムを作ってみます。

ただ、JSON形式だと人が見るのに適切ではないと思ったのでCSV形式に変換するようにしました。

注意点として2点。

・dドライブのdataフォルダに格納するように作成したのでdataフォルダを作成してください。

・以下のプログラムの中で「#ファイルの取得日を設定」という箇所があります。ここを変更すると任意の日付のEDINETの情報が取得できるはずです。

"""
EDINETのAPIを使って提出書類一覧をCSVで取得する。
"""

import requests
import json
import os

#保存するディレクトリ
DOWNLOAD_SAVE_DIR = r"C:\data"
#ファイルの取得日を設定
FileDate = "2020-02-14"


#バージョンが変わるたびに”v1"の部分を変更する必要がある模様
url = "https://disclosure.edinet-fsa.go.jp/api/v1/documents.json"

#必須パラメータのdateを入れる
#出力結果を変えるためにtypeを2にする(type=1だとmetadataしか出力されない)
params = {"date": FileDate, "type": 2}

#このAPIはREST APIなのでverifyをFalseにして接続するときのSSLを無効化する
res = requests.get(url, params=params, verify=False)

json_data = json.loads(res.text)

saveFileName = "EDINET-FSA" + FileDate + ".CSV"
saveFilePath = os.path.join(DOWNLOAD_SAVE_DIR, saveFileName)

# 書き出し用のファイルを開く
out_file = open(saveFilePath,"w")
#ヘッダー
dataline = "連番,書類管理番号,提出者EDINETコード,提出者証券コード,提出者法人番号,提出者名,ファンドコード,府令コード,様式コード,書類種別コード,期間(自),期間(至),提出日時,提出書類概要,発行会社EDINETコー,"\
"対象EDINETコード,子会社EDINETコード,臨報提出自由,新書類管理番号,操作日時,取下区分,書類情報修正区分,開示不開示区分,XBRL有無フラグ,PDF有無フラグ,代替書面・添付文章有無フラグ,英文ファイル有無フラグ" + '\n'
out_file.write(dataline)

for jsonline in json_data["results"]:
dataline = str(jsonline["seqNumber"]) + ',' + str(jsonline["docID"]) + ',' + str(jsonline["edinetCode"]) + ',' + str(jsonline["secCode"]) + ',' + str(jsonline["JCN"]) + ',' + \
str(jsonline["filerName"]) + ',' + str(jsonline["fundCode"]) + ',' + str(jsonline["ordinanceCode"]) + ',' + str(jsonline["formCode"]) + ',' + str(jsonline["docTypeCode"]) + ',' + \
str(jsonline["periodStart"]) + ',' + str(jsonline["periodEnd"]) + ',' + str(jsonline["submitDateTime"]) + ',' + str(jsonline["docDescription"]) + ',' + str(jsonline["issuerEdinetCode"]) + ',' + \
str(jsonline["subjectEdinetCode"]) + ',' + str(jsonline["subsidiaryEdinetCode"]) + ',' + str(jsonline["currentReportReason"]) + ',' + str(jsonline["parentDocID"]) + ',' + str(jsonline["opeDateTime"]) + ',' + \
str(jsonline["withdrawalStatus"]) + ',' + str(jsonline["docInfoEditStatus"]) + ',' + str(jsonline["disclosureStatus"]) + ',' + str(jsonline["xbrlFlag"]) + ',' + str(jsonline["pdfFlag"]) + ',' + \
str(jsonline["attachDocFlag"]) + ',' + str(jsonline["englishDocFlag"]) + '\n'
out_file.write(dataline)

#ファイルをクローズする
out_file.close()

私の環境でうまく行ったので他の環境でもうまくいくはず。







お・す・す・め・!

1

目次1 マコトのプロフィール1.1 自己紹介1.2 タイトルの由来1.3 サブタイトルの由来1.4 趣味1.5 ほしいも ...

-Python, プログラム

Copyright© 心ゆく日並 , 2020 AllRights Reserved.