본문 바로가기
반응형

Python82

PYTHON - pip 패키지 실치 [SSL: CERTIFICATE_VERIFY_FAILED] 오류 해결 pip를 이용해서 패키지를 설치하다보면 나타날 수 있는 오류로써, CERTIFICATE_VERIFY_FAILED 해결 방법은 trusthost를 등록하여 해소가 가능하다. 보통 패키지들은 pypi.org 혹은 pypi.python.org에서 다운로드 할 수 있으므로, 아래 도메인을 신뢰하는 도메인으로 구성하자. pypi.org pypi.python.org files.pythonhosted.org pip --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org install pip 환경 설정 파일에 등록하면, 매번 입력하는 번거로움을 해소할 수 있다. 경로는 아래와 같다. %APPDATA%\pip\.. 2024. 3. 18.
Python - Microsoft 365 Defender Advanced hunting Query Microsoft 365 Defender Advanced hunting Query 에서 사용할 수 있는 Python 코드이다. mde_search 함수를 재활용해서, 입력한 값이 어떤 타입인지에 따라 검색하는 조건을 바꾸도록 설계되어 있다. import json import time import argparse import pandas as pd import logging import sys import os import re import validators import datetime import random import zipfile import urllib.parse from collections import OrderedDict from urllib3.util.retry import Retry i.. 2024. 3. 18.
Python - Base64 인코딩, 디코딩 방법(인증/로그인/토큰) Python에서 Base64 인코딩과 디코딩은 기본적으로 제공하는 내장 모듈이다. 인증 및 로그인에 jwt나 토큰을 사용한다면 값을 그냥 전달하지 않고 base64로 인코딩하여 전달해야 하기 때문인데 보통 인증쪽에서 많이 사용된다. 파이썬에서는 base64 모듈을 통해서 활용이 가능하다. import base64 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. - 위키 그럼 Base64 인코딩을 진행하는 방법은 다음과 같다. Base64 인코딩 Byte(바이트)로 변환 > Base64 인코딩 진행 코드로 보면 다음과 같다. str_name = 'test' byte_name = str_name.encod.. 2024. 3. 18.
Python - 문자열을 Datetime변환시 TimeZone(strptime unconverted data remains) 해결하기 문자열로 되어 있는 값을 Datetime으로 변환하고자 한다면, 정확하게 각 문자열이 시간데이터 셋과 동일하게 맞추어야 하는데, Timezone을 인식 시키는 방법에 대해서 간단히 알아보고자 한다. 만약 아래와 같이 한국 타임존값이 들어 있는 것의 경우를 가정해 보겠다. '2023-12-18T15:47:56.599821424+09:00' >>> import datetime >>> str_date_time = '2023-12-18T15:47:56.599821424+09:00' >>> convert_datetime = datetime.datetime.strptime(str_date_time, '%Y-%m-%dT%H:%M:%S.%f') Traceback (most recent call last): File ".. 2024. 3. 14.
Python - Microsecond(마이크로초) 단위 문자열 변환하기 가장 기본적으로 많이 사용되는 시간 값은 소수점 6자리로 표현되는 Microsecond(마이크로초) 단위의 시간 값이라고 할 수 있다. from datetime import datetime str_datetime = '2023-12-18T15:47:56.599821' convert_datetime = datetime.strptime(str_datetime, '%Y-%m-%dT%H:%M:%S.%f') datetime.datetime(2023, 12, 18, 15, 47, 56, 599821) 2024. 3. 14.
Python - 타입 비교 type, isinstance 자주 사용하는 건데 자꾸 까먹어서 여기에 기록해 둔다. 현재 type이 리스트인지 확인하는 구분으로 리스트인 경우를 구분해 다른 처리를 진행할 때 사용할 수 있다. type 활용 직관적으로 type 구분을 활용하는 방법이다. >>> a_data = ['a','b'] >>> b_data = 'a,b' >>> if type(a_data) is list: ... print('yes, it is list') ... yes, it is list isinstance 활용 데이터간 비교시 사용하는 내장함수로 타입에도 사용이 가능하다. >>> a_data = ['a','b'] >>> b_data = 'a,b' >>> if isinstance(a_data, list): ... print('yes, it is list').. 2024. 3. 14.
Python - Linting, 소스 분석, 코드 최적화 flake8 최선의 성능과 안정성이 있는 코드는 모든 경고를 제거한 코드라 할 수 있다. 여기에서는 flake8를 통해서 간편하게 코드에서 필요한 수정사항등이 무엇이 있는지 알아보도록 하겠다. VSCode에서 많은 오류와 경고로 코드를 잡아주지만, VScode를 사용할 수 없거나, CI/CD 상황에서 사용할 만한 방법으로 flake8를 사용하면 어떨까 한다. 아래는 간단하게 VSCode 기본 상태에서 flake8를 이용해서 테스트를 한 결과이다. VScode와 다르게 현재 3가지 수정 사항이 있는 것으로 확인된다. flake8 이후 특정 파일이나 디렉토리를 통해서 코드를 분석할 수 있다. PS C:\Users\Han\python\flake8> python3 -m flake8 . .\test.py:4:1: F401 '.. 2024. 3. 14.
Python - HTTPConnectionPool 문제 해결, Max retries Python을 하다보면 가장 많은 오류를 볼 수 있는 부분이 Max retries 오류이다. HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /xxx (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 61] Connection refused')) 이는 2가지 경우인데 자신의 Connection Pool이 꽉 차서 나타나거나, 반대로 상대방이 요청을 거부하는 경우이다. 보통 HTTPAdapter의 Retry 옵션을 구성해서 사용하는데 세밀하게 설정할 수 있다. Retry 설정 def requests_retry_session(.. 2024. 3. 14.
Python - 동적 리스트(dynamic list) 해결 ValueError: too many values to unpack 아래와 같이 들어오는 값보다 적은 변수를 선언한 경우 ValueError: too many values to unpack (expected 3) 가 발생하는데, 문제는 동적으로 변화하는 리스트인 경우 미리 변수를 선언하기가 어려울 수 있다. 동적 변수 *(아스키 기호) 이경우 쉽게 사용할 수 있는 매직 메소드가 바로 *(아스키 기호)이다. 파이썬은 * 를 통해서 동적으로 변수를 사용할 수 있는데, 선언 시점에 *를 입력하게 되면, 동적으로 동작하여, 부족한 변수만큼 리스트로 값을 받아들이게 된다. 아래와 같이 마지막 변수에, 아스키 기호를 넣어주면 부족한 값을 리스트로 마지막 변수에 넣게 된다. 2024. 3. 14.
반응형