안녕하세요?


지난 포스팅에서 1500개를 넘는 종목의 1분봉 차트를 가지고 오는 작업을 하고자 합니다만, 문제가 발생하였습니다. 그래서 이번 포스팅에서는 대괄호인 [ ] 부터 리스트에서 제거하는 방법에 대해서 한번 언급하고 나서 움직여 보고자 합니다.



먼저 위 스크린샷과 같이 리스트[인덱스] = 리스트[인덱스].translate('[',) 이라는 구문을 주도록 합니다. 이런 작업을 하는 이유는 우선 제일 첫 요소-인덱스 0과 가장 마지막 요소-인덱스 -1 인 값들에 대괄호가 각각 [ 과 ]이 있기 때문입니다.



그런데 이번에는 위 스크린샷과 같이 대괄호가 아니라 '' 이 말표시가 문제가 된다는 메세지가 뜨면서, 이건 어떻게 지우기가 난감하다는 문제가 있습니다.



일단 translate가 문제인가 싶어서 한번 바꾸어 보기는 보았습니다만, 위 스크린샷에서 보이는 것처럼 replace라는 함수로 바꾸어 보았습니다.



다만 다른건 다 해결이 되기는 되었습니다만, 문제는 여전히 자식 프로세스에 넘어가서, 제대로 인식이 되지 않고 에러를 일으킨다는 것을 알 수 있었습니다.




일단 어째서 이런 문제가 생겼는가 했더니, 위 스크린샷에서 보이는 것처럼 리스트 안에 있는 값들이 이중으로 따옴표가 붙는 것을 확인할 수 있었습니다.



그래서 for문을 사용해서, 이번에는 작은 따옴표를 제거하는 방법을 위 스크린샷과 같이 만들어 보도록 합니다. 여러번 시도한 끝에, 큰 따옴표 "" 사이에 작은 따옴표 '를 넣는 방식이 유용하다는 것을 알 수 있었습니다.



이제서야 이중으로 붙었는 따옴표가 사라지는 것을 확인할 수 있기는 있었습니다. 이제 다른 문제가 없으리라 생각하고 한번 가 보도록 합니다.



그런데 이번에는 에러 메세지가 동시에 뜨는 것을 확인할 수 있었습니다. 일단 어찌어찌 되었건 간에 자식 프로세스에서 문제가 생겼기 때문에, 이를 해결하러 가기는 가야 합니다.




그래서 어디가 에러가 났느냐 하면, 위 스크린샷처럼 str이라고 문자열이 들어가야 하는 곳에다가 int형식의 변수가 들어가서 생기는 문제였습니다.



이렇게 하고나서는 아무런 문제가 일어나지 않고서, 제대로 작동이 되는 것으로 보여지기는 합니다. 그래서 진짜로 제대로 된 것이 맞는지 확인해 보기 위해서 한번 확인하러 가 봅니다.



그런데 뜻하지 않은 문제가 발생하는 것을 확인할 수 있었습니다. 종목코드의 시작이 0으로 시작하는 종목의 경우 0이 삭제가 되면서 제대로 된 데이터가 저장되지 않는 것을 볼 수 있었습니다.



그래서 이게 int()라는 함수를 써서 생긴 문제라는 생각이 들어서, 우선은 자식 프로세스인 dataharvester가 부모 프로세스로 부터 데이터를 받자마자 이걸 문자열로 바꾸도록 했습니다.




그 다음으로는 for문에 에러가 있어서 인덱스 번호가 0부터 잡히지 않는 문제점이 있었습니다. 그래서 이를 해결하기 위해서 위 스크린샷과 같이 수식을 변경해 주도록 합니다.



일단 여기서는 제대로 문제없이 에러가 나오지 않고, 작동이 겉으로는 보기에는 제대로 되고 있는 것으로 보이는 것을 볼 수 있었습니다.



그리고 나서 데이터 베이스 안에 테이블로 형성된 것을 보면, 위 스크린샷과 같이, 제대로 0으로 시작하는 종목코드들도 제대로 붙어 있는 것을 확인할 수 있었습니다.



그런데 이번에는 어디가 문제인지 모르겠습니다만, 어찌된 것인지, 데이터 베이스에 아무런 데이터도 저장이 되지 않는 현상이 벌어지는 것을 볼 수 있었습니다. 이제 어디가 문제인지 계속해서 알아내야 하며, 이러한 작업은 거의 새벽부터 시작해서 아침까지 이어는 졌습니다만, 그다지 큰 효과는 없기는 없었습니다.

+ Recent posts