본문 바로가기
2021-1/Expert

MongoDB | csv 파일 읽어들어오기

by 이망고_ 2021. 12. 5.

오류 1. \xa0

가만히 보면 row[2] 에서만 이 글자가 함께 출력이 되고 있었다. 무시할 수 없고.. 

문자열이기 때문에 이를 삭제해주고자 하였는데, 어떻게?

str.replace('\xa0', '') 해서 공백으로 만들어 준다. 

1. 구상(설계)하기

2. 코드 입력하기 : 어디에 넣을지를 모르겠더라.. 

 

오류 2 . inputName 을 str -> array 로 넣으라고 하셨다

 

not String -> Array

그것이 Array 형식인지는 몰랐는데, 박사님께서 inputName 

에 영문명과 동의어를 한 테이블씩 생성하라고 하셨다.

String 으로 넣어주니, inputName 으로 들어가서 , 를 기준으로 한 줄 처리로 된 것을 알 수 있었고

다른 폴더들을 참고해보니 박사님이 말씀하신 것처럼 처리하려면 Array 형식으로 넣어주어야

각 값이 각 테이블로 생성되어 들어갈 수가 있었다~(응,, 선배 찬스..)

 

오류 해결해가는 과정

선배님 팁

내가 구상한 것이 맞는지, 그 여러 줄 사이에서 대체 어디에 생각한 코드를 입력해야 하는지 어려워하니까 본인은 예시를 들어서 실행해보고 생각한 출력값 형태가 나오면 적용한다고 하셨다.

예시 코드 만들기

예를 들어서 row[0], row[1], row[2] 행이 있었는데

0 행은 originalName 들어가게 할 거고

1행과 2행은 inputName에 들어가게 하고 싶었다. 그래서 이 두행을 합쳐주려고 하는데 내가 생각한 코드는

r = row[1] + row[2] 

였다.

선배가 이게 너가 생각한 게 맞는 것 같으면 예시를 하나 만들어봐서 실행시켜보라고 하셨다.

ls = ['apple', 'naver', 'kkao, sesr'] <= 기존의 형태와 비슷한 배열로 만듦 [한글명, 영문명, 동의어'들']

변수를 지정하여 생각한 것을 실행해보자.

r = ls[1] + ls[2] 

출력값

내가 원하는 형태가 아니었다. 

다시, 각 행을 쉼표로 구분

r = ls[1] + ', ' + ls[2]

수정한된 출력값 (원하는 형태임)

1행과 2열이 합쳐져서 잘 나왔다. 단, Array 형태가 아닌 Str 형태로.

 

배열형태로 만들어주기

내가 생각한 코드 .list() 을 씌어주면 될 것..

근데 .split(', ') 도 해주었어야 했는데, split 처리를 해주면 자동적으로 Str -> Array 형식으로 변환이 되었다! (신기방기)

그래서 우선은 \xa0 를 .replace() 를 해주어서 삭제해주는 것 먼저

 

\xa0삭제해주기 

 tmp = (row[1] + ', ' + row[2]).replace("\xa0","")

이 코드를 따로 생성해주었는데.. 

 tmp = (row[1] + ', ' + row[2].replace('\xa0','')).upper().split(',')

이렇게 함수 여러개를 붙일 수 있었다.

단, 유의할 점은 위키독스에 보면 이러한 함수들은 str 에 사용할 수 있는데, .split() 를 쓰게 되면 array 형태로 변환되어서 이러한 함수가 먹히지가 않는다~ 그래서 .split() 를 젤루 마지막으로 사용해주는 것이었어..

하는 김에 대문자 변환 함수인 .upper() 처리도 해주었다. 

 

중복 처리해주기

계속 set으로 만들어주려다가.. (선배가 set버리라고 해서)

if문으로 만들어 주었다. 

for l in ls:
    if l[1] not in l[2]:
        print( l[1] + ', ' + l[2])
 
만약 row[1] 이 [2]에 들어가 있지 않으면, =>
 
if row[1] not in row[2]:
       row[2] = row[1] + row[2] 
else:
       row[2]

 

'2021-1 > Expert' 카테고리의 다른 글

Expert | Crawling Task  (0) 2021.12.06
MongoDB | csv 파일 insert 하기  (0) 2021.12.06
MongoDB | 엑셀파일 넣어주기  (0) 2021.12.05
Xshell | 명령어  (0) 2021.12.05
Xshell | 연동하기  (0) 2021.12.03