일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- PYTHON
- 데이콘
- gs25
- 우분투
- Git
- Baekjoon
- leetcode
- hackerrank
- 편스토랑 우승상품
- 코로나19
- Kaggle
- 더현대서울 맛집
- github
- ChatGPT
- dacon
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- Docker
- SW Expert Academy
- programmers
- 파이썬
- 금융문자분석경진대회
- AI 경진대회
- 백준
- 프로그래머스 파이썬
- ubuntu
- 프로그래머스
- 맥북
- 자연어처리
- 캐치카페
- Today
- Total
목록
반응형
Programming/Python (108)
솜씨좋은장씨
🧑🏻💻 겪었던 일 최근 솔루션 개발 이후 뭔가 질문 리스트를 솔루션에 넣고 벌크로 테스트를 해보는 기능을 테스트 해보면서 MissingSchema: Invalid URL '': No scheme supplied. Perhaps you meant http://? 위와 같은 에러 메세지가 발생한 경우가 있었습니다. 처음에는 에러메세지에 MissingSchema 라는 단어를 보고 어? 이거는 DB 연동 관련된 부분인가보다! 하고 생각했습니다. 그런데 막상 해당 에러 메세지로 검색을 쭉 하다보니 DB 연동쪽 에러 발생이 아니었습니다. * 발생 에러 메세지 ( 더보기 클릭 ) 더보기 ------------------------------------------------------------------------..
🧑🏻💻 겪었던 일 최근 회사에서 기존 고객사의 DB에 있는 정보를 기존 솔루션에 반영하는 작업을 진행하면서 csv 형식의 덤프파일로 만들어진 기존 DB의 정보를 솔루션에 반영하는 과정이 있었습니다. 솔루션에 모든 데이터가 별다른 에러가 없이 잘 들어가는 것을 확인하여 에러가 없나보다 하던 차에 기존 DB 데이터의 Contents ID 와 솔루션에 반영된 같은 데이터의 Contents ID 가 다른 것을 발견하였습니다. 기존 DB 데이터의 Contents ID 가 '0132323' 이었다면 솔루션에 반영된 같은 데이터의 Contents ID가 '132323' 으로 맨 앞의 0이 제거된 채로 반영이 되어있었습니다. 🧑🏻💻 원인 원인이 무엇일까 하고 찾다보니 덤프파일로 내려진 csv 파일을 읽을때 pand..
M1 Mac 을 구매하면서 가장 걱정되었던 부분이 기존에 내가 작업하면서 사용하던 파이썬 라이브러리들이 설치가 잘 될까? 였습니다. 다행히 지난 M1 맥북에어가 출시된 이후 상당히 많은 시간이 흘러 많은 부분들이 아주 잘 설치가 되었습니다. 그러다 며칠 전! PyMuPDf 라이브러리를 설치하기 위해서 % pip install pymupdf 명령어를 실행하였는데! 아래와 같은 기다란 에러메세지가 출력되었습니다. Collecting pymupdf Using cached PyMuPDF-1.20.2.tar.gz (90.4 MB) Preparing metadata (setup.py) ... done Building wheels for collected packages: pymupdf Building wheel f..
이번에 새로 구매하게 된 M1 Max 맥북프로 16인치의 개발환경을 처음부터 세팅하면서 설치한 Anaconda 의 설치 방법에 대해서 정리해보고자 합니다. 🧑🏻💻 Anaconda 설치파일 다운로드 https://www.anaconda.com/products/distribution Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 먼저 위의 사이트로 이동하여 설치파일을 다운로드 받습니다. 오른쪽 하늘색 영역에서 애플 로고를 클릭합니다. ..
최근! 프로젝트를 진행하면서 솔루션에 SSO 로그인 기능을 붙이면서 그룹포탈에서 넘겨주는 쿠키 속에 암호화되어 들어가있는 사번 정보를 복호화 해야하는 작업이 필요했습니다. 암호화되어있는 사번을 복호화 하는 작업은 Java 로 만들어져있는 jar 파일로 되어있는 복호화 라이브러리를 활용해야했습니다. 하지만 솔루션은 Python 으로 개발 하였기때문에 Java로 만들어진 라이브러리를 바로 활용을 하기는 어려웠습니다. 어떻게 하지..? 복호화 알고리즘을 파악해서 우리가 구현을 해야하나..? 싶던 차에 다른 프로젝트에서 Node.js 에서 자바 라이브러리를 활용하여 SSO 로그인 기능을 구현한 것을 보고 오...! Python 도 Java 라이브러리를 불러서 사용하면 되지 않을까...! 라는 생각이 들었습니다...
최근 회사에서 고객사의 기존 레거시 데이터를 회사의 솔루션으로 마이그레이션 하는 작업을 하면서 각 마이그레이션 작업의 시작과 끝에 lock 파일을 생성하고 삭제하는 프로세스 구현이 필요했습니다. Python 에서 별도의 라이브러리 설치 없이 기본 라이브러리를 활용하여 파일을 생성하고 삭제하는 방법을 찾게 되어 해당 방법으로 구현을 하였습니다. 이번 작업에서 open, os 그리고 pathlib 을 활용하여 구현한 방법을 공유해보려합니다. 👨🏻💻 파일을 생성하는 방법 👨🏻💻 open 활용 방법 def create_file(file_path): with open(file_path, 'w') as f: pass 👨🏻💻 pathlib 활용 방법 import pathlib def create_file(fil..
👨🏻💻 발생 에러 with open(test_path, 'r', 'cp949') as f: test_result = f.readlines() --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 3 print(test_path) 4 ----> 5 split_test_result_for_mrc_passage(test_path=test_path) in split_test_result_for_mrc_passage(test_path) 1 def split_test_result_for_mrc_passage(test_path): ----> 2 wit..
👨🏻💻 발생 에러 평소에 잘 사용하던 가상환경에서 pandas 라이브러리가 필요하여 $ pip install pandas pip 명령어를 통해 설치를 하려고 하였는데 Traceback (most recent call last): File "/Users/donghyunjang/anaconda3/bin/pip", line 5, in from pip._internal.cli.main import main ModuleNotFoundError: No module named 'pip._internal.cli' 위와 같이 ModuleNotFoundError: No module named 'pip._internal.cli' 에러가 발생하였습니다. 👨🏻💻 원인 원인은 정확하지는 않지만 보통 이전에 설치되어있던 버전을..
평소에는 Pycharm 을 사용하다가 오랜만에 Visual Studio Code를 사용하여 개발을 진행하던 중 위와 같이 그냥 봤을때는 문제가 없어보이는 코드에서 빨간색 밑줄이 생기고 마우스를 가져다 대면 Inconsistent use of tabs and spaces in indentation Pylance 위와 같은 메세지가 나오는 것을 볼 수 있었습니다. 👨🏻💻 원인 Python 코드를 작성할때 좌측의 indentation을 탭과 스페이스를 혼용하여 사용하였을 경우 발생합니다. 그럼 내가 탭을 사용했는지? 스페이스를 활용했는지? 어떻게 아는가? 코드를 드래그 해보았을때 좌측 이미지 처럼 ········ 으로 나오면 스페이스! 우측 이미지 처럼 → → 일 경우에는 탭을 활용한 겁니다. 👨🏻💻 해결..
1. jupyter_notebook_config.py 생성하기 ~/.jupyter 위치에 jupyter_notebook_config.py를 생성해줍니다. $ cd ~/.jupyter 먼저 ~/.jupyter 위치로 이동합니다. $ jupyter notebook --generate-config 그 뒤에 위의 명령어를 통해 jupyter_notebook_config.py를 생성합니다. Writing default config to: /Users/donghyunjang/.jupyter/jupyter_notebook_config.py 그럼 위와 같은 메세지가 나오면서 jupyter_notebook_config.py 파일이 생성됩니다. Overwrite /Users/donghyunjang/.jupyter/jupy..
TypeError: '
최근 출장 간 Python을 활용하여 DB를 연동할 일이 있었습니다. 그동안 Oracle, Postgresql, maria DB는 sqlalchemy를 활용하여 잘 연동하여 사용했었는데 이번에 연동해야할 DB는 티맥스 소프트에서 만든 Tibero라는 데이터 베이스였습니다. Tibero는 기존에 다른 DB를 연동할 때 처럼 sqlalchemy를 활용하여 연동하는 것이 불가했습니다. 찾아보니 Tibero 는 ODBC라는 것을 활용하여 연동이 가능했습니다. 이번 글에서는 Ubuntu 환경에서 ODBC를 활용하여 Tibero ( 버전 Tibero6 ) 를 연결하는 방법에 대해 적어보고자 합니다. 👨🏻💻 연동을 위해 필요한 정보 먼저 연동을 위해서는 몇가지 정보가 필요합니다. 구분 예시 비고 데이터 베이스 IP..
2020.12.19 - [Programming/Python] - [Python] pdf 파일을 이미지로 변환하는 여러가지 방법 ( feat. pdf2image, tifffile, wand, ImageMagick ) [Python] pdf 파일을 이미지로 변환하는 여러가지 방법 ( feat. pdf2image, tifffile, wand, ImageMagick ) 각 페이지별 이미지 변환 ( pdf to jpg ) - pdf2image 활용 여러 페이지로 구성되어있는 pdf 파일을 각 페이지별 이미지로 변환하는 방법에 대해서 적어보려 합니다. 먼저 이 과정을 진행하기 위해서 필 somjang.tistory.com 기존에 pdf를 이미지로 변환하는 방법들을 여러가지 찾아본 적이 있었습니다. 이번에 프로젝트를..
최근에 pyodbc 를 활용하여 python으로 Tibero 데이터베이스를 연동하고 나서 cursor를 생성하고 sql 쿼리를 실행했는데...! PSM Compilation Error 분명 쿼리에 틀린 부분이 없음에도 불구하고! 위와 같이 PSM Compilation Error 가 계속 발생해서 이틀 정도를 이 에러와 씨름한 적이 있었습니다. 내가 쿼리를 잘 못 쓴 건가...? 코드 속에 들어있는 한글이 문제인가...? 정말 여러 원인을 대입해보면서 추측해보았는데 모두 아니어서 너무 슬펐었습니다. 그러다 수없이 많이 들어가보았던 글에서 다급해서 였는지 계속 놓친 부분을 다른 팀원분이 찾아주셨고 그 방법을 적용하여보니 PSM Compilation Error 발생 없이 제대로 실행이 되는 것을 볼 수 있었습..
👨🏻💻 발생한 상황 opencv-python 을 pip 명령어로 설치를 하다가 보면 Building wheels for collected packages: opencv-python Building wheel for opencv-python (PEP 517) ... | 위와 같이 Building wheel for opencv-python (PEP 517) 메세지와 함께 더이상의 과정이 진행이 되지 않는 경우가 있습니다. 저는 네트워크 환경이 문제인 줄 알았으나 네트워크 문제는 아니었습니다. 👨🏻💻 원인 네트워크의 문제는 아니었고 pip 의 버전이 낮아서 필요하지 않은 과정을 거쳐 가려고 하다보니 발생하는 문제였습니다. 👨🏻💻 해결 방법 $ pip install --upgrade pip setuptoo..
이번에 진행하는 작업에서 Oracle DB를 사용하여 sqlalchemy 라이브러리와 cx_Oracle 라이브러리를 활용하여 DB에 연결을 시도하였는데 아래와 같은 에러가 발생하였습니다. sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 0x0001): tried: 'libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (no such file), '/usr/lib/libclntsh.dylib' (no such file), '/Users/donghy..
👨🏻💻 iterable 객체 ? iterable 객체는 한 번에 하나의 member를 반환할 수 있는 object (객체)를 의미하며 iterator 로 변환이 가능한 객체를 뜻한다고 합니다. iterable 객체의 형식에는 list, dict, set 이 존재합니다. 여러 라이브러리를 활용하여 개발을 하다보면 라이브러리에서 나온 특정 객체가 iterable 한지 그렇지 않은지 확인하고 싶은 경우가 종종 있습니다. 이번 글에서는 특정한 객체가 iterable 한지 그렇지 않은지에 대해서 확인하는 방법 2가지를 공유하고자합니다. 👨🏻💻 hasattr 메소드를 활용하는 방법 먼저 hasattr을 활용하여 확인하는 방법입니다. # 확인하고자 하는 객체 == object hasattr(object, "__i..
개발을 하다 보면 종종 특정 시간과 특정 시간 사이에 얼마나 많은 시간이 흘렀는지 구해야 할 경우가 있습니다. 직접 시간을 계산하는 코드를 작성해도 되지만 2시 39분 -> 5시 25분 까지 얼마나 걸렸어? 라고 계산을 한다고 했을때 1시간은 60초라는 것을 감안하면서 계산하기가 귀찮기도 합니다. 이를 조금 더 쉽게 계산하는 방법이 없을까! 하다가 찾은것이 바로 datetime의 strptime 을 활용하는 방법입니다. 👨🏻💻 datetime 의 strptime strptime은 문자열로 되어있는 날짜 또는 시간을 datetime 객체로 바꾸어주는 함수입니다. 😎 사용 예시 * from datetime import datetime 으로 datetime을 import 한 뒤에 사용 문자열 strptime..
$ python3 setup.py bdist_wheel 위의 명령어를 통해 파이썬 패키지를 whl 파일로 만들고자 하는데 (sample_env) (base) somjang:sample donghyunjang$ python3 setup.py bdist_wheel usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help error: invalid command 'bdist_wheel' 위와 같은 에러가 발생했습니다. 👨🏻💻 원인 이는 내 환경에 wheel 이 설치가 되어있지 않아 발..
👨🏻💻 네이버 뉴스 기사 수집을 부탁해! 마케팅 / 홍보 대행 회사에서 인턴을 하는 친구가 업무를 받았는데 특정 기업에 대한 O월 O일 ~ O월 O일 까지의 네이버 뉴스 기사를 수집하고 각각의 기사가 기획 기사인지, 부정 기사인지 분류를 해야하는데 수집해야 할 뉴스기사가 너무 많다며 혹시 프로그래밍으로 수집 할 수 있는 방법이 있는지! 물어보았습니다. 🤩 기사 수집이라면 당근! 크롤링이라면 또 제 전문 분야 이기에 시간이 될 때 도와 주기로 하였고 간단하게 기사 제목, 기사의 url, 언론사, 기사가 올라온 날짜 이렇게 4가지를 크롤링하는 코드를 작성하여 12월 1달 간의 기사를 크롤링해서 전달해 주었습니다. 이번 글에서는 그때 작성했던 코드에서 조금 개선하여 공유해보려 합니다. 요구사항 특정 회사를 ..
크롤링 코드를 작성할 때 종종 한글을 url에 포함시켜야할 경우가 있습니다. 만약 내가 네이버 뉴스에서 토스에 대한 기사를 크롤링해온다고 한다고 할 때 크롤링에 사용하기 위해 해당 뉴스 탭의 주소를 사용하기 위해서 https://search.naver.com/search.naver?where=news&sm=tab_jum&query=토스 브라우저 상에서 위와 같이 보이는 주소도 다른 곳에 복사해보면 https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%ED%86%A0%EC%8A%A4 위와 같이 "토스" 이 한글이 %와 영어 숫자로 이루어진 값으로 바뀐 것을 볼 수 있습니다. 이는 url에서 활용하는 Percent-Encoding 방식입니다...
오늘 친구의 부탁으로 날짜별 특정 키워드에 대한 네이버 뉴스 크롤링을 진행하였는데 각 날짜별로 만들어진 이 모든 엑셀 파일을 하나의 엑셀로 만들어서 전달해야하여 pandas를 활용해서 작업해보았습니다. 추후 또 사용할 일이 있을 것 같아 적어보려 합니다. ( 전체 코드는 맨 마지막에 있습니다. ) 1. 병합을 원하는 엑셀파일 목록 가져오기 1-1. os.listdir을 이용하는 방법 import os file_format = "파일 포맷(확장자)" # .csv .xlsx file_path = "파일 경로" file_list = [f"{file_format}/{file}" for file in os.listdir(file_path) if file_format in file] 위의 사진의 엑셀 파일을 예시로..
친구의 부탁으로 네이버 뉴스 기사 제목과 링크를 크롤링하기 위해 오랜만에 Selenium과 BeautifulSoup (4.10.0버전) 을 활용하여 크롤링 코드를 작성하였습니다. selenium의 page_source로 가져온 페이지의 html 소스 속에서 필요한 내용을 가져오기 위하여 url_soup = BeautifulSoup(page_html_source, 'lxml') 위와 같이 코드를 작성하고 실행하니 --------------------------------------------------------------------------- FeatureNotFound Traceback (most recent call last) in 6 target_date = date_time_obj.strftim..
2021.12.01 - [Programming/Python] - [Python] telegram.Bot 사용 시 AttributeError: module 'telegram' has no attribute 'Bot' 발생 오류 해결 방법 🥲 어벤져스 엔드게임 예매 실패 PTSD 지난 2019년 4월 16일. 어벤져스 엔드게임 용산 아이맥스 예매가 18시에 오픈된다는 소식을 듣고 부대에서 장교로 근무하고 있어 야근 전에 PX에서 구매한 컵라면과 냉동으로 다른 간부들과 저녁을 간단하게 해결하고 있었습니다. 17시 45분 즈음 되었을 때 예매가 18시에 오픈한다고 하니 이제 슬슬 들어가볼까? 하며 CGV 어플을 켜서 예매로 들어가려고 하는데 이상하게 접속이 잘 안되었고 좀 기다려보니 이미 오픈되어있는 예매와 장..
홈페이지 중에서 https 로 시작하는 페이지의 경우 http와는 다르게 SSL 인증이 필요한 페이지 입니다. 스파이더맨 노 웨이홈 예매 시작을 목빠지게 기다리고 있는데 영등위(영상물등급위원회) 에서 아직도 등급 심의 결과가 나오지 않아 예매 오픈이 되지 않고 있습니다. 🥲 CGV 영화 예매 오픈 텔레그램 알리미는 만들어서 집 PC에서 실행시켜 두었는데 추가로 영등위 심의 결과 확인 알리미도 만들어볼까 하여 온라인등급분류서비스-등급진행자료조회 - 영화(Spider-Man: No Way Home) 온라인등급분류신청 온라인등급분류서비스는 온라인을 통해 영화, 영상물, 공연물에 대한 등급분류 신청과 진행상항, 결과확인, 정보제공 등의 서비스를 제공합니다. ors.kmrb.or.kr 스파이더맨: 노 웨이 홈 (..
개발을 하다보면 종종 리스트의 값들을 내가 원하는 순서대로 정렬하고 싶을 때가 있습니다. 각 리스트 속 리스트의 값들의 두번째 값을 기준으로 오름차순 정렬을 하고 싶은 경우 또는 정말 내가 원하는 순서를 정해서 그 순서대로 정렬을 하고싶은 경우가 그럴 때 입니다. 1. 리스트 안에 리스트 형태로 값들을 가지고 있을 때 각 리스트 값의 2번째 값으로 정렬하고 싶은 경우 데이터의 형태가 아래와 같을 경우 my_data_list = [[1, 2], [2, 1], [3, 5], [4, 4], [6, 3]] 각 값의 2번째 값 ( 2, 1, 5, 4, 3 ) 을 기준으로 오름차순 정렬을 하고 싶다고 한다면 sort 또는 sorted와 lambda 를 활용하여 정렬하면 됩니다. 아래와 같이 my_data_list ..
스파이더맨 노웨이홈의 개봉이 14일 앞으로 다가온 오늘! 오랜만에 텔레그램으로 예매 알리미를 만들어볼까하여 import telegram bot = telegram.Bot(token="토큰") 위와 같이 코드를 작성하고 실행하려고하니 --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in 2 # from telegram import Bot 3 ----> 4 bot = telegram.Bot(token="토큰") 5 6 AttributeError: module 'telegram' has no attribute 'Bot' 위와 같이 tel..
Python으로 여러 오픈되어있는 라이브러리를 설치해서 사용하다보면 (예시) pdfminer.six 라이브러리의 결과물 pdf 실행 결과가 위처럼 class 객체로 나오는 경우가 종종 있습니다. 물론 설명이 자세하게 되어있는 라이브러리거나 코드라면 문제가 없겠지만 아무런 설명도 없이 저렇게 결과가 나오게 되면 당황스러운 경우가 종종 있습니다. 그럴 경우 해당 python class 객체가 어떠한 변수와 메소드를 가지고 있는지 확인하는 방법은 다음과 같습니다. dir(pdf) python의 기본 내장 함수인 dir을 활용하면 ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__..
import pymysql user = 'user' password = 'password' db_host = 'localhost' db_port = 3306 table_name = 'test_table' charset = 'utf-8' db = pymysql.connect(host=db_host, port=db_port, user=user, passwd=password, db=table_name, charset=charset, autocommit=True) 오랜만에 위와 같은 방법으로 pymysql을 활용하여 database에 접근하여 저장되어있는 이미지를 다운로드 받기위해 db 연결을 하려고 하니 AttributeError: 'NoneType' object has no attribute 'encodin..
이번에 API 개발을 진행하면서 base64형식으로 인코딩한 pdf파일을 request에 포함시켜 API 요청으로 받아 이를 활용하여 하는 작업이 있었습니다. 이번 글에서는 FastAPI에서 base64 형태로 인코딩된 값을 input으로 받고 이 값을 활용는 방법에 대해서 적어보려합니다. 먼저 BaseModel을 상속하여 request와 response 형식을 지정하는 class를 만들어 줍니다. from pydantic import BaseModel class Base64Request(BaseModel): base64_file: str class Base64Response(BaseModel): response_code: str response_message: str 이 형식으로 요청을 받은 base6..