oryou-sanのブログ

備忘録です

Edinet APIを使ってみる(書類一覧API編 その1)

はじめに

Edinet APIPythonで使ってみる。
書類一覧APIと書類取得APIの2つがあるが、この記事では書類一覧APIについて扱う。


まずは叩いてみる

pythonからgetメソッドでAPIを叩く。
出力がJSONフォーマットでそのままだと見づらいのでdict型に変換。

import requests
import json

date = '2022-03-09'

response = requests.get('https://disclosure.edinet-fsa.go.jp/api/v1/documents.json?date='+date+'&type=2')

res_txt = response.text
res_dict = json.loads(res_txt)

出力はこんな感じ。

metadataに指定した日付にEdinetに提出された書類のサマリー情報が格納されている。
resultsには提出書類ごとの情報。

res_dict['metadata']

#出力
{'title': '提出された書類を把握するためのAPI',
 'parameter': {'date': '2022-03-09', 'type': '2'},
 'resultset': {'count': 139},
 'processDateTime': '2022-03-10 00:02',
 'status': '200',
 'message': 'OK'}
res_dict['results'][0]

#出力
{'seqNumber': 1,
 'docID': 'S100N7NZ',
 'edinetCode': 'E12444',
 'secCode': None,
 'JCN': '8010001114914',
 'filerName': '三井住友トラスト・アセットマネジメント株式会社',
 'fundCode': 'G04973',
 'ordinanceCode': '030',
 'formCode': '10A000',
 'docTypeCode': '160',
 'periodStart': '2021-06-10',
 'periodEnd': '2022-06-09',
 'submitDateTime': '2022-03-09 09:00',
 'docDescription': '半期報告書(内国投資信託受益証券)-第16期(令和3年6月10日-令和4年6月9日)',
 'issuerEdinetCode': None,
 'subjectEdinetCode': None,
 'subsidiaryEdinetCode': None,
 'currentReportReason': None,
 'parentDocID': None,
 'opeDateTime': None,
 'withdrawalStatus': '0',
 'docInfoEditStatus': '0',
 'disclosureStatus': '0',
 'xbrlFlag': '1',
 'pdfFlag': '1',
 'attachDocFlag': '0',
 'englishDocFlag': '0'}

resultsの中身をpandas DataFrameに変換

先ほど取り出したresultsをpandas DataFrameに変換して中身を見やすくする。
あらかじめ出力をdict型に変換してあるので、変換はコード1行で可能。

このままだと列数が多いので、columns変数に必要そうな項目のリストを代入して列数を絞る。

import pandas as pd

res_rslt = res_dict['results']

df_rslt = pd.DataFrame(res_rslt)
df_rslt.set_index('seqNumber',inplace=True)

columns = ['docID',
           'edinetCode',
           'secCode',
           'JCN',
           'filerName',
           'ordinanceCode',
           'formCode',
           'docTypeCode',
           'periodStart',
           'periodEnd',
          'submitDateTime']

df_rslt[columns].head()

f:id:oryou-san:20220319090929p:plain

とりあえず今回はここまで。