Closed woo9904 closed 3 years ago
나~~중에 다른코드 작성하면서 알게되었는데 mariaDB 처음 생성할때, with self.conn.cursor() as curs: sql=""" CREATE TABLE IF NOT EXISTS company_info ( code VARCHAR(20), company VARCHAR(40), last_update DATE, PRIMARY KEY (code) ); """ curs.execute(sql) sql=''' CREATE TABLE IF NOT EXISTS daily_price( code VARCHAR(20), date DATE, open BIGINT(20), high BIGINT(20), low BIGINT(20), close BIGINT(20), diff BIGINT(20), volume BIGINT(20), PRIMARY KEY (code, date) ); ''' 이 문장을 heidiSQL에 직접 입력하게 되면 code가 CODE로 대문자로 자동으로 변경됩니다.
그래서 저는 대문자로 'CODE'라 해야했고, 다른분들은 코드로 위처럼 입력할 경우 저와 같은 문제는 일어나지 않을겁니다.
안녕하세요. 김황후입니다.
제가 혹시나해서 HeidiSQL 10.2.0.5599에서 다시 쿼리문을 입력해 봤는데 제 PC에서는 code가 CODE로 바뀌는 현상은 없었습니다.
HeidiSQL 버전 차이 때문이거나 설정 차이 때문일 것 같은데 오류가 발생하는 분은 woo9904님이 알려주신 내용을 참고하면 좋을 것 같습니다.
의견 주셔서 감사합니다.
On Sun, 15 Nov 2020 at 23:36, woo9904 notifications@github.com wrote:
나~~중에 다른코드 작성하면서 알게되었는데 mariaDB 처음 생성할때, with self.conn.cursor() as curs: sql=""" CREATE TABLE IF NOT EXISTS company_info ( code VARCHAR(20), company VARCHAR(40), last_update DATE, PRIMARY KEY (code) ); """ curs.execute(sql) sql=''' CREATE TABLE IF NOT EXISTS daily_price( code VARCHAR(20), date DATE, open BIGINT(20), high BIGINT(20), low BIGINT(20), close BIGINT(20), diff BIGINT(20), volume BIGINT(20), PRIMARY KEY (code, date) ); ''' 이 문장을 heidiSQL에 직접 입력하게 되면 code가 CODE로 대문자로 자동으로 변경됩니다.
그래서 저는 대문자로 'CODE'라 해야했고, 다른분들은 코드로 위처럼 입력할 경우 저와 같은 문제는 일어나지 않을겁니다.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/INVESTAR/StockAnalysisInPython/issues/9#issuecomment-727579536, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEDW7VPAJUIXWFA4HX56J6DSP7RNDANCNFSM4TV73DBQ .
안녕하세요
DBUpdater.py에 문제가 있어 고민하다가 해결해 다른분들도 똑같은 문제가 있을 까봐 문제와 해결방법을 올립니다.
Traceback (most recent call last): File "C:\Python\Python38\lib\site-packages\pandas\core\indexes\base.py", line 2889, in get_loc return self._engine.get_loc(casted_key) File "pandas_libs\index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc File "pandas_libs\index.pyx", line 97, in pandas._libs.index.IndexEngine.get_loc File "pandas_libs\hashtable_class_helper.pxi", line 1675, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas_libs\hashtable_class_helper.pxi", line 1683, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: 'code'
The above exception was the direct cause of the following exception: Traceback (most recent call last): File "c:/Users/skwjd/OneDrive/문서/myPackage/Woo/te.py", line 169, in
dbu.execute_daily()
File "c:/Users/skwjd/OneDrive/문서/myPackage/Woo/te.py", line 136, in execute_daily
self.update_comp_info()
File "c:/Users/skwjd/OneDrive/문서/myPackage/Woo/te.py", line 58, in update_comp_info
self.codes[df['code'].values[idx]] = df['company'].values[idx]
File "C:\Python\Python38\lib\site-packages\pandas\core\frame.py", line 2899, in getitem
indexer = self.columns.get_loc(key)
File "C:\Python\Python38\lib\site-packages\pandas\core\indexes\base.py", line 2891, in get_loc
raise KeyError(key) from err
KeyError: 'code'
이처럼 KeyError: 'code'가 뜰 경우 def update_comp_info(self): """종목코드를 company_info 테이블에 업데이트한 후 딕셔너리에 저장""" 부분에서
책에서는 ['code']라고 소문자로 되어있지만 ["CODE"]라 해야 해결이 되더라구요 . 저만의 문제인지 다들 문제가 생길지는 모르겠지만 참고하세요!