with open('C:/Users/seohe/OneDrive/바탕 화면/Univ.csv', 'r', encoding='utf-8') as University:
lines = csv.reader(University)
next(lines)
y = []
for row in lines:
x = {}
# x['originalName'] = row[0]
if row[1] not in row[2]:
tmp = (row[1] + ', ' + row[2].replace('\xa0','')).upper().split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = (row[1] + ', ' + row[2]).replace("\xa0","")
else:
tmp = row[2].upper().replace('\xa0','').split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = [row[1] + ', ' + row[2]]
# print(tmp)
# tmp = tmp.split(',')
for t in tmp:
x['inputName'] = t
# print(x)
x = {'originalName' : row[0]}
y.append(x)
Public_CollegeName.insert_many(y)
# x = {'originalName' : row[0]}
# x['inputName'] = tmp
# print(x)
# break
# print("len : ", len(row), ",row : ", row)
# print(row[0], row[1], row[2])
# break
# print(x)
진차 후덜덜하다...
3개월 처음으로 박사님한테 코드 설명듣는데,, 진짜 안 물어봤던 게 너무 후회되는,,, ㅠㅠ기분이다
진짜 몇 분 안되서 바로바로 코드를 짜시고 오류 생기니 바로 해결해주셨다.
오류해결 절차
1. 1번째 코드
with open('C:/Users/seohe/OneDrive/바탕 화면/Univ.csv', 'r', encoding='utf-8') as University:
lines = csv.reader(University)
next(lines)
for row in lines:
x = {}
x['originalName'] = row[0]
if row[1] not in row[2]:
tmp = (row[1] + ', ' + row[2].replace('\xa0','')).upper().split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = (row[1] + ', ' + row[2]).replace("\xa0","")
else:
tmp = row[2].upper().replace('\xa0','').split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = [row[1] + ', ' + row[2]]
# print(tmp)
# tmp = tmp.split(',')
for t in tmp:
x['inputName'] = t
# print(x)
Public_CollegeName.insert_one(x)
# x = {'originalName' : row[0]}
# x['inputName'] = tmp
# print(x)
# break
# print("len : ", len(row), ",row : ", row)
# print(row[0], row[1], row[2])
# break
# print(x)
몽고DB 에 데이터를 넣어주면서 자동적으로 _id 가 생성되고 중복된 _id가 생성된다는 오류였다. 이를 막기 위해서
2. 2번째 수정코드
with open('C:/Users/seohe/OneDrive/바탕 화면/Univ.csv', 'r', encoding='utf-8') as University:
lines = csv.reader(University)
next(lines)
for row in lines:
x = {}
x['originalName'] = row[0]
if row[1] not in row[2]:
tmp = (row[1] + ', ' + row[2].replace('\xa0','')).upper().split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = (row[1] + ', ' + row[2]).replace("\xa0","")
else:
tmp = row[2].upper().replace('\xa0','').split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = [row[1] + ', ' + row[2]]
# print(tmp)
# tmp = tmp.split(',')
for t in tmp:
x['inputName'] = t
# print(x)
Public_CollegeName.insert_one(x)
x = {'originalName' : row[0]}
# x['inputName'] = tmp
# print(x)
# break
# print("len : ", len(row), ",row : ", row)
# print(row[0], row[1], row[2])
# break
# print(x)
x = {'originalName' : row[0]}
코드를 사용해줘서 중복되는 _id 생성을 막아주었다... 이런 생각 대체 어떻게??
3. 3번째 수정코드
with open('C:/Users/seohe/OneDrive/바탕 화면/Univ.csv', 'r', encoding='utf-8') as University:
lines = csv.reader(University)
next(lines)
y = []
for row in lines:
x = {}
# x['originalName'] = row[0]
if row[1] not in row[2]:
tmp = (row[1] + ', ' + row[2].replace('\xa0','')).upper().split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = (row[1] + ', ' + row[2]).replace("\xa0","")
else:
tmp = row[2].upper().replace('\xa0','').split(',')
tmp = list(map(lambda x:x.lstrip() , tmp))
# tmp = [row[1] + ', ' + row[2]]
# print(tmp)
# tmp = tmp.split(',')
for t in tmp:
x['inputName'] = t
# print(x)
x = {'originalName' : row[0]}
y.append(x)
Public_CollegeName.insert_many(y)
# x['inputName'] = tmp
# print(x)
# break
# print("len : ", len(row), ",row : ", row)
# print(row[0], row[1], row[2])
# break
# print(x)
시간이 너무 오래 걸려서 insert_one() -> insert_many() 로 수정하는 것이 좋을 것 같다 하시면서 구글링
https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/
시간이 오래 걸려서 insert_many() 문법을 보려고 구글링을 해주었다.
insert_many() 리스트를 사용해주어서 y = [] 값을 next(lines) 아래에 생성해주었고
첫번째 for문 안에 있던 x['originalName'] = row[0] 두번째 for문에서 _id 중복되는 것을 막기 위해 사용해주어서 삭제해주었다.
그리고 두번째 for문 아래에 y.append(x)를 추가해주면서
for문 밖으로 Public_CollegeName.insert_many(y) 을 사용해주면서, y를 넣어주었다.
진짜~~~~~ 이 코드 수정이, 이 과정이 수분 안에 이루어진 것이..다
갓갓 하는 이유를 ㅠㅠ 보면서 진짜 멋있었고 오늘 오후에 진짜 이 학과에서 내가 잘 할 수 있을런지 긴장이 너무 되고 힘들었는데, 하시는 거 보고 진짜 감탄만 나왔다..
3개월 되어서 부끄러워서 처음 물어본 게 너무 후회가 되었다.... 진작에 좀 물어볼 걸 그랬다...
진짜 멋찜...!!