본문 바로가기
반응형

Python127

Python - Timezone 포맷 Datetime 값 비교 오류 TypeError: can't compare offset-naive and offset-aware datetimes 시간 포맷이 생각보다 다양하다는 것을 먼저 인식하고 있어야 문제에 대해 쉽게 접근할 수 있다. 이 오류는 시간 비교시, 서로 간에 포맷이 맞지 않아서 발생하는데, 특히 이 문제가 어려운 경우는 보통 TimeZone 값이 있을 경우라고 할 수 있다. 타임 존이 있는 값과 타임 존이 없는 값은 서로 다른 타입으로 비교가 되지 않기 때문이다. 이 문제를 해결 하기 위해서는 두가지 값중 하나를 맞추어야 하는데, 보통 다음과 같이 해결 할 수 있다. Timezone 추가하기 Timezone은 pytz 파일에서 제공하는데 이를 이용해서 먼저 타임존을 선언해 놓을 수 있다. import pytz UTC.. 2024. 3. 10.
Python - Datetime 특정 시간 간격으로 나누기 DateTime을 특정 시간으로 나누어 실행해야 하는 경우 유용한 함수이다. 방식은 시간의 차이를 계산한 후 이를 나누어야 하는 타임값으로 나누어 저장하는 방식이라고 할 수 있다. 코드는 아래와 같다. import datetime def split_time_range(start_time, end_time, interval): # 시작 시간과 종료 시간을 UTC로 변환 start_time = datetime.datetime.combine(start_time.date(), start_time.time(), tzinfo=datetime.timezone.utc) end_time = datetime.datetime.combine(end_time.date(), end_time.time(), tzinfo=dateti.. 2024. 3. 10.
TSQL - 문자열 포함 확인(Like) TSQL에서 가장 많이 사용되는 것이 바로 문자열 포함유무라고 할 수 있다. 이때 사용할 수 있는 키워드는 바로 Like 이다. 포함 유무이기 때문에 %를 이용해서 앞과 뒤쪽에 문자열에 관계없이 표현할 수 있도록 구성이 가능하다. select from . where like '%com%' select를 이용해서 특정 컬럼을 지정하거나 * 을 이용해 모든 컬럼을 표시하도록 하고 from은 검색을 진행할 데이터베이스와 테이블을 지정한다. 그리고 where 문을 이용해 특정 컬럼을 지정하고 Like로 포함되는 문자열을 지정하면 된다. 2024. 3. 10.
Python - salt와 nonce에 대해 salt와 nonce는 모두 암호화에서 사용되는 용어로, 비밀번호 및 데이터 해킹을 방지하는 데 도움이 된다. salt는 비밀번호에 추가되는 임의의 문자열이다. 비밀번호를 암호화할 때 salt를 사용하면 동일한 비밀번호를 가진 두 사용자의 암호화된 비밀번호가 서로 달라지게 된다. 이는 대규모 데이터베이스에서 비밀번호를 해킹하는 데 사용되는 공통적인 방법인 대조 공격을 어렵게 만들어 암호 보호에 도움이 된다. nonce는 일회용 암호화 키이다. nonce는 암호화 알고리즘에 사용되며, 매번 다른 암호화 키를 생성한다. 이는 같은 데이터를 여러 번 암호화하더라도 매번 다른 암호화된 데이터를 생성하기 때문에, 공격자가 암호화된 데이터를 해독하는 데 어려움을 겪게 만들 수 있다. 예제 코드로 보면 salt와 n.. 2024. 3. 10.
Python - SSL warnings 출력 안하는/비활성화 방법 Python 에서 SSL 인증서를 비활성화 하면, 콘솔 화면에 경고가 출력하게 된다. 이를 비활성화 할 수 있는 방법 urllib3 와 SSLContext를 이용한 2가지 정도를 정리해 본다. 1. urllib3를 이용한 비활성화 import ssl import urllib3 urllib3.disable_warnings() ssl.urllib3.disable_warnings(category=category) 함수를 사용하여 특정 범주의 SSL 경고를 비활성화 할 수 있다. urllib3.exceptions.InsecureRequestWarning: 안전하지 않은 요청에 대한 경고 urllib3.exceptions.InsecurePlatformWarning: 안전하지 않은 플랫폼에 대한 경고 urllib3.. 2024. 3. 7.
Python - HTTP Keep-alive 를 통한 성능 향상 HTTP Keep-Alive를 이용하면, TCP 세션을 연결하는 작업을 하지 않고 추가적인 데이터를 보낼 수 있기 때문에 많은 장점을 가지게 된다. Nginx에서도 Keep-alive를 활성화 할 경우 50%이상의 성능을 더 올릴 수 있기 때문에 만약 웹 요청을 진행해야 하는 경우 Keep-alive 사용 가능 유무를 추후 꼭 체크하는 것이 좋다. 파이썬을 통한 일반적인 요청은 아래와 같다. import requests import time import logging logging.basicConfig(level=logging.DEBUG) url = "https://httpbin.org" start = time.perf_counter() requests.get(url) requests.get(url) r.. 2024. 3. 7.
Python - AWS S3 Select 와 Atena 차이점, 기본 사용법 AWS를 이용하면 S3에 저장되어 있는 데이터를 확인해야 한 경우가 종종 발생한다. 이띠, Atena와 Select를 이용해서 S3에 저장되어 있는 자료를 검색해 부분적으로 가져올 수 있는 기능을 통해 원하는 자료만 빠르게 검색할 수 있다. 먼저 S3 Select와 Atena의 기본적이 차이를 알아보도록 하자. S3 Select 와 Atena 차이점 AWS Select: 가장 비용을 효율적으로 원하는 S3와 Glacier 에서 데이터를 검색할 수 있는 방법이다. AWS Athena: ANSI SQL 방식으로 완전한 SQL 쿼리를 사용할 수 있다. - group by, having, window, geo in SQL DDL and DML등 따라서 검색 위주로 사용하는 경우 S3 Select, Atena는 .. 2024. 3. 7.
pymysql error - RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods pymysql을 이용해서 mysql 인증시 아래와 같은 cryptography 오류가 발생한다면 해당 인증 모듈이 설치가 되어 있지 않아서이다. 아래 명령으로 cryptography 를 설치하도록 하자. pip install cryptography 2024. 3. 7.
Pandas - 자동 줄 바꿈(Warp Text) 서식 적용, 및 컬럼 크기(Auto-Column length) 보다 사용자에게 보여주기 유용한 엑셀을 작성하고자 할 때 유용한 옵션으로, 실제는 스타일 시트를 추가로 입히는 작업이라고 할 수 있다. 먼저 적용할 부분은 컬럼 크기를 글자 크기에 맞춰서 작성하는 코드이다. >>> dict_list = [{'name':'han','age':'10','loc':'seoul','txt':'abcd','txt2':'abcd'},{'name':'kim','age':'14','loc':'busan','txt':'aasdfljleiasdfnncvlasdlhja','txt2':'abcd'},{'name':'lee','age':'12','loc':'iksan','txt':'asdfffffffffffcjkdsakfkdashjfkjlasdfjhasidasdfadsfasdfuoia','tx.. 2024. 3. 7.
반응형