본문 바로가기
반응형

PYTHON114

Python - Truthy, Falsy 논리적 참, 거짓 Python 코드를 자주 작성해보면 무심코 쓰는 기능이지만, 대부분의 예전 개발 언어를 보면, 자료 타입에 맞춰서 어떤 값이 있는지를 조건을 개발자가 선택해 코드를 제작하는 경우가 많았다. 대표적으로 C#같은 경우 과거 if object == null or object == String.empty 를 조건으로 함께 사용하였었다. 이유는 함수에 따라서 반환하는 결과에 따라서 자료 타입의 값 자체가 설정되지 않은 null 혹은 빈 문자열 공간인 ''은 언어에서 다르게 인식하였기 때문이다. 이는 개발할 때 개발자가 체크해야 하는 여러 조건중 한가지를 더 고민하게 만드는 요소가 된다. Python은 개발 편의성을 맞춰서 개발된 언어이기 때문에 기본적으로 모든 자료 타입이 자신의 논리(boolean)값이 구성되어.. 2023. 1. 31.
Python - smtp email html 로 전송 하기(naver, daum, google, kakao) 메일을 보내는 코드는 대부분의 개발 언어에서 제공하고 있어 손쉽게 개발할 수 있다. 그중 최근 개발에 집중하고 있는 Python을 가지고 코드를 작성해 보았다. Python에서는 smtplib이라는 기본 라이브러리를 제공한다. 이 라이브러리를 이용하면, 손쉽게 메일을 전송할 수 있다. import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText def send_email(): # Create the container (outer) email message. msg = MIMEMultipart() msg['Subject'] = 'Test email' msg['From'] = '' msg['T.. 2023. 1. 27.
Python - 파파고 언어 감지 requests 파파고 공식에서 urllib을 활용한 코드가 있어서 requests를 많이 사용하는 필자에게 알맞게 변경해 보았다. import os import sys import requests import urllib import json client_id = 'client_id' client_secret = 'client_secret' deteclnag_url = "https://openapi.naver.com/v1/papago/detectLangs" papago_headers = { 'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret } papago_data = { 'query': "언어를 감지할 문장을 입력하세요" } deteclnag.. 2023. 1. 25.
Python - quote 에러 해결 module 'urllib3' has no attribute 'parse' quote는 URL에 UTF-8 기반으로 인코딩 작업을 할 때 종종 사용되는데, 비밀번호라던가, URL에 입력 Python 3.10 버전 이상을 사용하여도, urlib3를 사용하는 경우 정상적으로 사용이 되지 않아서 무엇이 문제인가 싶어서 확인해보니, urllib3가 아닌 urllib을 사용하면 쉽게 해결이 가능하다. 코드는 아래와 같다. import urllib.parse text_msg = '안녕하세요, 반갑습니다.' enc_url = urllib.parse.quote(text_msg) print(enc_url) 2023. 1. 24.
Python - Google Dirve API 사용하기 오늘 Google API를 활용해서 업로드를 해야하는 작업이 있어 진행해보았다. 실제 사용되는 드라이브는 사용자 드라이브가 아닌 별도의 프로젝트용 Drive에 저장되는 것으로 보이지만, 우선 Google Drive에 대해 API로 활용할 수 있는 방법에 대해서 정리해본다. https://console.cloud.google.com/apis/library/browse Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 여기에서 Drive 를 검색한다. 이후 아래 Google Drive API 화면이 나타나는데, 클릭후 사용하기를 누르면 된다. 이후 가장 중요한 사용자 인증 만들기 를 진행한다. 이후 인증 유형을 물어보는데, 필자는 사용자 동의를 구하.. 2023. 1. 14.
Python - 파파고 Open API 신청 및 만들기 먼저 Open API 신청하기 Neural Machine Translation - INTRO (naver.com) Neural Machine Translation - INTRO Neural Machine Translation NAVER Developers - Papago 소개 NMT는 Neural Machine Translation(인공신경망 기반 기계번역)의 약어입니다. 파파고의 NMT 기술은 입력 문장을 문장벡터로 변환하는 신경망(encoder)과 문장벡 developers.naver.com 필자가 만든 함수는 다음과 같다. import requests def papago_trans(text, source = 'ko', target = 'en'): """Papago Translator""" # Pap.. 2023. 1. 13.
Python - List 내 비교 in, not in Python은 List 비교를 다른 언어보다 쉽게 진행 할 수 있느데, 바로 in, not in 이라는 연산자 이다. 사용 법은 간단하다. 리스트와 같은 배열에 적용하면 동일한 값이 존재하는지를 알 수 있다. >>> test_list = ['aaa', 'bbb', 'ccc'] >>> if 'aaa' in test_list: ... print('list in this value') ... list in this value >>> if 'aa' in test_list: ... print('list in this value') ... >>> 배열 이외에 단순 문자열과 같은 변수에도 적용한수 있는데, 이때는 동일한 문자열이 존재하는지 비교하게 된다. >>> test_value = 'aaaccc' >>> if '.. 2023. 1. 11.
Python - json_normalize 복잡한 JSON, Pandas DataFrame으로 변환하기 Pandas DataFrame은 데이터 가공 능력이 좋기 때문에 파이썬에서 가장 선호되는 데이터 관리 방식이다. 단순 JSON형태는 Pandas DataFrame으로 쉽게 변환이 가능하지만, index를 쉽게 할 수 없는 구조의 복잡한 JSON 데이터(다형 리스트를 가졌거나, 형태가 일정하지 않은 데이터등) 변환하여 사용해야 하는 상황에서 어떻게 효율적으로 사용할 수 있을지 정리해 본다. JSON은 기본적으로 Key, Value로 되어 있기 때문에 이를 잘 활용하는 것이 좋다. 먼저 Python 에서 JSON의 데이터 구조를 불려올 수 있는 방법에 대해서 확인해 보자. 아래와 같은 구조적 데이터가 있다고 가정하자. { "region_code": "11", "tags": [ "self-signed" ], .. 2023. 1. 5.
Python - 숫자형(int) 리스트(list) 조인(join) 하기 개발은 참 알고 나면 쉬운데 알기 까지 걸리는 시간이 오래 걸린다. 이부분으로 오늘 또 데이터를 가공하다가 숫자형 리스트를 조인하는데 어떻게 가능한지를 확인하여 정리해본다. 먼저 해결 코드를 보자. 해결 방법은 map 함수를 활용하면 된다. int_list = [1, 2, 3, 4, 5] int_str = ' '.join(map(str, int_list)) print(int_str) map 함수를 사용하면 각 항목을 str로 변환하여 전달하게 된다. map 함수 관련된 공식 자료는 여기에서 확인할 수 있다. https://docs.python.org/3/library/functions.html#map Built-in Functions The Python interpreter has a number of .. 2023. 1. 4.