안녕하세요?
이번 포스팅에서는 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에서 한번 실행을 시켜보고 나서 생각을 해보라는 것 입니다. 이것 때문에 겨우 어디가 문제인지 알게 되었습니다.
'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글
RLTrader의 유저 인터페이스를 만드는 작업-10- (5) | 2018.12.15 |
---|---|
RLTrader의 유저 인터페이스를 만드는 작업-9- (8) | 2018.12.15 |
RLTrader의 유저 인터페이스를 만드는 작업-8- (2) | 2018.12.14 |
RLTrader의 유저 인터페이스를 만드는 작업-7- (0) | 2018.12.14 |
RLTrader의 유저 인터페이스를 만드는 작업-6- (0) | 2018.12.14 |
RLTrader의 유저 인터페이스를 만드는 작업-5- (0) | 2018.12.13 |
안녕하십니다. 포스팅하시는 글들을 모두 하나하나 읽어보면서 프로그램을 짜보고 있는 사람입니다.
정말 유익하고 코딩능력이 좋지않은 저도 보면서 코드를 짤수있을정도로 잘 설명되어있습니다~
다른 에러들은 잡으면서 여기까지 왔는데 sql에러에 대해서는 도저히 알수가 없어서 그러는데 도움을 좀 요청해도 될까요?
답글
안녕하세요?
사정이 있어서 답글이 늦어졌습니다.
어떤 에러인지 파이참의 에러 메세지를 알려주시면 제가 아는 한에서 도와드리겠습니다.
아니면 영어가 되신다면 stack overflow같은 곳에 구글링으로 파이참 에러 메세지를 검색하는 것으로 해결책을 찾아볼수 있습니다.