본문 바로가기
무모한 도전-주식 인공지능 만들기

RLTrader의 유저 인터페이스를 만드는 작업-8-

by 인터넷떠돌이 2018. 12. 14.
반응형

안녕하세요?


이번 포스팅에서는 SQL구문을 가지고서 하루이상 제 작업 진도를 발목잡았고, 상당히 해결책을 몰라서 골치가 아팠던 부분을 포스팅 하고자 합니다. 뭐라고 해야 할까요? 파이썬에서 어떻게 하면 SQL구문을 사용할 지에 대한 이야기를 한다고 보시면 될듯 합니다.



먼저 Selection_of_training_data_set()이라고 해서, 입력받은 숫자를 가지고서 어떻게 하면 데이터 베이스의 파일에서 원하는 데이터만 과거부터 가지고 올 수 있는지에 대한 메소드를 만들려고 합니다. 일단 먼저 위 스크린샷과 같이 문제가 되는 부분은 바로 cur.execute()안에 들어간 sql구문입니다.



일단 어디가 문제인지 몰라서 에러가 나오는 것을 볼 수 있었습니다.



계속해서 시도를 하여도 에러가 뜨자, 아무래도 제 생각에는 pandas를 import해서 시도를 해 보고자 합니다.



그래서 위 스크린샷에 보이는 것과 같이 read_sql()이라는 메소드를 사용했지만......




어디가 잘못된 것인지 모르게 에러가 나오는 것을 볼 수 있었습니다.



그래서 위 스크린샷과 같이 이전에 원하는 테이블이 데이터 베이스 파일에 있는지를 알아보는 구문을 사용해 보았습니다만..



이건 제대로 작동이 되는 것을 확인할 수 있었습니다. 그래서 어디가 잘못되어서 이러는 것인지 전혀 감이 잡히지 않는 상황이 계속해서 이어지고 있었습니다.



일단 여기서는 테이블안에 있는 테이블명을 가지고 올 수 있지, 정작 이 단계에서 알고자 했는 데이터 베이스의 테이블 안에 얼마나 많은 row(행)이 있는지에 대해서는 알 수 없다는 문제점이 나왔습니다.




그래서 답답한 마음에 일단 DB Browser에서 SQL구문을 입력해 보았습니다. 그런데 처음에는 에러가 났었고, 제대로 작동을 하기 위해서는 테이블명에다가 ""를 붙여 주어야 하는 것을 볼 수 있었습니다.



그래서 위 스크린샷과 같이 sqlCode라는 변수를 따로 만들어서 SQL구문을 다음과 같이 만들었습니다. "SELECT * FROM '%s'" % stockCode 라고 해서, 테이블명이 들어가는 부분에다가 ' ' 를 붙였습니다.



그러했더니 이제는 제대로 들어가는 것을 볼 수 있었습니다. 한마디로 이제까지 계속해서 에러가 나오는 부분에서 겨우 에러가 안 나오는 것을 볼 수 있었다는 것 입니다.



정말인지 이 단계에서 그 ' ' 를 붙여야 한다는 것을 몰라서 하루 이상이 걸리고 말았습니다. 아무튼 이번일로 인해서 하나 알게 된 것은, 우선 SQL query가 의심이 되거든 DB Browser에서 한번 실행을 시켜보고 나서 생각을 해보라는 것 입니다. 이것 때문에 겨우 어디가 문제인지 알게 되었습니다.

반응형