[ 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())