728x90
[Python] Dart 재무재표 분석 _ [2] 불러온 Dart 고유코드 DB에 저장하기
Dart에서 Zipfile 형태의 고유번호 xml 리스트 불러와서 UnZip 후 DataFrame 형태로 반환
한뒤 DataBase에 저장하는 Python code 이다.
테스트를 하다보면 mysql database table에 데이터가 누적 되어 지는데
기존 데이터를 지우고 인덱스 번호(Increment)를 초기화 하는 과정까지 기록 하였다
import os
import django
from django.db import connection as con
os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'testDjango.settings')
django.setup()
from stock.packages import create_dart_info as dart
from stock.models import Stock
crtfc_key = '1aeb3259d8e0aeba54201cf7a049848316269bcd'
df = dart.get_corpcode(crtfc_key)
## 테이블의 기존 데이터를 모두 지움
Stock.objects.all().delete()
## 테이블의 인덱스번호를 1부터 다시 시작하게 초기화함
def MakeDefaultIncrement():
try:
cursor = con.cursor()
strSql = 'alter table stock_stock auto_increment = 1;'
result = cursor.execute(strSql)
con.commit()
con.close()
except:
con.rollback()
print("Failed reset increment")
MakeDefaultIncrement()
## 테스트 출력
print(df.loc[0][1])
## 데이터가 모두 지워지고 인덱스번호가 1부터 시작하게 초기화된
## 테이블에 데이터 새로 저장하기
for i in range(0, len(df)):
Stock.objects.create(corp_code=df.loc[i][0],
corp_name=df.loc[i][1],
stock_code=df.loc[i][2],
modify_date=df.loc[i][3],)
## mysql database table에 저장된 데이터 불로와서 터미널에 출력해보기
data_stock = Stock.objects.vaues()
print(data_stock)
- connection: 데이터베이스에 접속을 하기 위한 모듈
- settings.py에 입력한 데이터베이스 정보를 가지고 접속
- cursor(): cursor 객체 생성 cursor 란 SQL문을 수행하고 결과를 얻는데 사용하는 객체
- cursor.execute(): 쿼리문을 연결된 DB로 보내 쿼리를 실행
- cursor.fetchall(): 쿼리 실행 결과로 반환된 전체 데이터를 데이터베이스 서버로부터 가져옴
- connection.commit(): 데이터에 대한 변경사항이 있다면 이를 확정, 갱신
- connection.close(): 데이터베이스와의 연결을 닫음
- connection.rollback(): 쿼리문 실행 도중 잘못된 경우 실행 전으로 되돌려 놓음
'my_stock > _Technical_Analysis' 카테고리의 다른 글
[Python] Dart 재무재표 분석 _ [4] DB에 저장된 데이터 읽어오기 (1) | 2021.12.28 |
---|---|
[Python] Dart 재무재표 분석 _ [3] 불러온 Dart 재무제표 DB에 저장하기 (0) | 2021.09.12 |
[Python] Dart 재무재표 분석 _ [1] Dart에서 고유번호 불러오기 (0) | 2021.08.20 |
댓글