본문 바로가기

Language/python

[ Python library ] 상장되어있는 종목코드 리스트 출력 함수(dart api 이용)

반응형

import requests
from io import BytesIO
import zipfile
import xmltodict
import json
import xmltodict

 

#상장되어있는 종목코드 리스트 출력 함수
def get_shcodelist():
    api = 'https://opendart.fss.or.kr/api/corpCode.xml'
    res = requests.get(api, params={'crtfc_key': '6dcXXXXXXXXXXXXXXXXXXXXXXXX'})
    data_xml = zipfile.ZipFile(BytesIO(res.content))
    data_xml =  data_xml.read('CORPCODE.xml').decode('utf-8')

    data_odict = xmltodict.parse(data_xml)
    data_dict = json.loads(json.dumps(data_odict))
    data = data_dict.get('result', {}).get('list')

    length=0
    for i in range(len(data)):
        if data[i]['stock_code'] is not None:
            length=length+1
    shcodelist=list(range(length))

    count=0
    for i in range(len(data)):
        if data[i]['stock_code'] is not None:
            #print(data[i]) #기업명을 포함한 dictionary형태 출력
            shcodelist[count]=data[i]['stock_code']
            count = count+1
    return shcodelist

print(get_shcodelist())

반응형