jeongkyeom / journal-of-developing

0 stars 0 forks source link

[making challenge] 2주차 개발일지 #2

Open jeongkyeom opened 2 years ago

jeongkyeom commented 2 years ago

21.12.20

1. checklist

2. problem and solving

import json
from pymongo import MongoClient

client = MongoClient('localhost', 27017)

db = client.dbdionysos

file_path = 'wines.json'

with open(file_path, 'r', encoding='UTF8') as json_file:
    json_data = json.load(json_file)

    for k in json_data['wines']:
        db.wines.insert_one(k)
#국기 API 수신용
flag_api_key_dic = {'정겸':'Bt7UDJuh%2BWuYJWLBoSGnIiMm5qxZO0NhIQH8PzuwSxURVjlzWyI7yqQeQYByRWoJt8huUxdZAuXJItneU%2FWfyA%3D%3D',
                    '유나':'PTiMwap95cBIBrBf5xUPhjRPbEN3019TXvq1jwTtTtBjPW%2FhQx6Br4Z%2Fm56kPIoHKgh4ZJQtObnQYR10igCROw%3D%3D',
                    '호선':'lEp%2BwInxYSRQTesxok%2FX0xgycPC6UL%2FY3ot97Hn8wgmdNzRjKvjl87uD3jKgRPggqhF3g7ZkvOxZWpFxT3zQqw%3D%3D'}
key_cnt = 1
flag_api_key = flag_api_key_dic['정겸']
flag_url = 'http://apis.data.go.kr/1262000/CountryFlagService2/getCountryFlagList2?serviceKey={}&pageNo=1&numOfRows=10&cond[country_nm::EQ]={}&cond[country_iso_alp2::EQ]={}'
#국가 코드 저장용
dict_from_csv = dict()
with open('외교부_국가표준코드_20210929.csv', mode = 'r') as inp:
    reader = csv.reader(inp)
    for rows in reader:
        dict_from_csv[rows[7]] = rows[0]

3. what I learned

4. idea

5. retrospection

구글링을 하며 수시간동안 여러 시도를 해봤지만 결국 실패했고, 결국 이번에도 팀원의 도움을 통해 문제를 해결했다. 이쪽분야의 배경지식 부족을 실감하면서도 지속적인 공부의 중요성을 다시한번 느끼게 되었다. 전체적인 크롤링 코드를 다시한번 찬찬히 보며 내것으로 만들어 봐야할것같다.

jeongkyeom commented 2 years ago

21.12.21

1. checklist

2. problem and solving

import csv
from pymongo import MongoClient

client = MongoClient('localhost', 27017)

db = client.dbdionysos

f = open("wines.csv", "r")
reader = csv.reader(f)

for row in reader:
    # print(row)
    db.wines.insert_one(row)

-> 이것저것 시도해봤는데 위 코드에서 reader = csv.reader(f) 부분을 reader = csv.Dictreader(f)로 고치니 정상 작동하였다. 아마 딕셔너리 형태로 읽어오는 형태인 dictreader명령어를 사용했기 때문인걸로 생각된다. 제대로 작동되는 전체 코드는 아래와 같다.

import csv
from pymongo import MongoClient

client = MongoClient('localhost', 27017)

db = client.dbdionysos

f = open("wines.csv", "r", encoding='UTF8')
reader = csv.DictReader(f)

for row in reader:
    db.wines.insert_one(row)

3. what I learned

4. idea

5. retrospection

그동안 말도많고 속썩이던 DB작업이 드디어 마무리 지어졌다. 저장할 DB서버가 정해지는 대로 DB작업을 마무리짓고 본격적으로 백앤드 작업에 돌입할것이다. 그동안 웹크롤링 작업 및 DB작업을 하면서 많은 시행착오가 있었지만 덕분에 얻어가는것이 많았던것 같고 향후 비슷한 작업을 함에 있어서 큰 자산으로 남을 좋은 경험이었다.