[Python]利用金融公共データ2


--GitHubリンク--
先の記事では、CELENIUMを利用して法人登録番号を取得できるシステムを作るというストーリーを紹介しました.
この記事から、ほぼ最終目標の財務諸表データを収集します.

テスト計画


1.企業名の入力
2. dart.fss.or.krを自動的に検索して「法人登録番号」を入力
3.公的データを使用して、会計年度2020年の損益計算書と財務ステータス計算書のデータにアクセスし、出力します.

かいはつ


数値関数


私はまずデータのプレビューを通じて、私たちが受信するデータがよく見えないことに気づいた.
そこで,まず,数字を英式英語のように見せる関数を作成した.
1000000(百万)
-> 1,000,000
#영미식 단위로 끊어주는 함수

def money(mon):
    a = mon
    result = str(mon)
    finalresult = ""
    count = 0
    while (a > 0):
        a = a//1000
        if(a != 0):
            count+=1
    for i in range(count):
        info = -3*count
        index = info+i*3
        result = result[:index] + ',' + result[index:]
        
    return result
#----------------
#test
money(1320000)
#result = 1,320,000
#----------------
# O(n)
時間の複雑さは...あんな顔をしている

データしょり


共通データの多くはxml形式です.xmltodictが必要なDict形式でインポートします.
$ pip install xmltodict
まず、ネットからデータを読み込みます.したがって、requestが使用されます.
jsonも使用しているので、以下のようにインポートします.
import request as rq
import json, xmltodict
損益計算書データ・アドレスおよび財務ステータス・テーブル・データ・アドレスは、
  • S I変数およびS FP変数に割り当てられます.
  • rq.get(S_I).xmlをcontentで受信します.
  • xmltodict.parse()関数を使用してdict形式でグループ化します.
  • サーバに格納される可能性があることを考慮して、文字列として格納します.
  • ですが、jsonフォーマット、jsonを使用します.load()を使用してjsonフォーマットに変換します.
  • 損益計算書データ処理の部分を見れば分かります.
    S_I_content = rq.get(S_I).content
    
    S_I_dict = xmltodict.parse(S_I_content)
    
    S_I_jsonString = json.dumps(S_I_dict['response']['body']['items']['item'], ensure_ascii=False)
    
    #string -> json
    S_I_jsonObj = json.loads(S_I_jsonString)
    こうして受け取ったデータを以下のように印刷します.
    for i in S_I_jsonObj:
        print('====',i['acitNm'],'====')
        print("당분기:", money(int(i['thqrAcitAmt']))+"원")
        print("당기:",money(int(i['crtmAcitAmt']))+"원")
        print("전분기:",money(int(i['lsqtAcitAmt']))+"원")
        print("전기:",money(int(i['pvtrAcitAmt']))+"원")
        print("전전기:",money(int(i['bpvtrAcitAmt']))+"원")
        if(i['fnclDcdNm'] == "연결재무제표 [member]"):
            print("재무제표 종류:","연결재무제표\n")
        elif i['fnclDcdNm'] == "별도재무제표 [member]":
            print("재무제표 종류:","별도재무제표\n")
    結果の一部は以下の通りである.

    将来の計画


    現在、複数の企業から情報を受け取り、Excelで整理分析を行う予定です.