반응형 Python124 Python - 에러 해결: list indices must be integers or slices, not str Python 코드를 작성하다보면, list indices must be integers or slices, not str이라는 오류를 종종 접하게 된다. list indices must be integers or slices, not str 또는 cannot unpack non-iterable NoneType object 이 오류는 List 같은 문자열 아닌 값을 문자열 처럼 사용했을 때 발생한다. 따라서 이 오류를 해결하기 위해서는 각 변수의 타입에 맞게 사용했는지을 유심하게 봐야한다. 보통 문자열과 list 형태는 다루는 방식이 다르기 때문에 나타난다고 보면 된다. 특히 실사용에서는 아래와 같이 다중 리스트형태일 경우를 무시해서 발생하는 경우가 많으므로 주의할 필요가 있다. #다중 리스트 인덱스로 문.. 2024. 2. 20. Python - 함수 타입 지정, 타입 힌트(Type Hint)에 대해 파이썬 타입 힌트는 코드에 대한 메타 정보를 제공하여 가독성, 안정성, 유지 관리성을 향상시키는 강력한 도구입니다. 이 튜토리얼에서는 타입 힌트의 기본 개념부터 다양한 사용 사례, 그리고 실제 코딩에 적용하는 방법까지 자세히 살펴보겠습니다. 1. Type Hint, 타입 힌트란 무엇인가? 파이썬은 동적 타이핑 언어이기 때문에 변수나 함수의 타입을 명시적으로 선언할 필요가 없습니다. 하지만 타입 힌트를 사용하면 코드에 사용되는 타입을 명시적으로 표시하여 다음과 같은 다양한 장점을 얻을 수 있습니다. 코드 가독성 향상: 코드를 읽는 사람이 변수나 함수의 역할과 의미를 쉽게 이해할 수 있도록 도와줍니다. 코드 안정성 향상: 타입 오류를 미리 감지하여 개발 단계에서 버그를 예방하고 코드의 안정성을 높입니다. 코.. 2024. 2. 20. Python - HTTPX/Requsets Connection reset by peer 문제 해결하기 Connection reset by peer 오류는 서버와의 연결이 끊어졌을 때 발생하는 일반적인 오류이다. httpx에서 이 오류가 발생하는 경우 다음과 같은 몇 가지 해결 방법을 시도해 볼 수 있다. 여기에서는 HTTPX 를 이용하지만, Requests 라이브러리에서도 동일하게 조치가 가능하다. 서버 환경 설정등 확인해야 할 것이 많지만, 기본적으로 확인해야 하는 요소는 다음 3가지이다. timeout keep-alive 연결 재시도 1. 연결 시간 제한 확인 timeout 매개변수를 사용하여 연결 시간 제한을 늘리면, 서버가 처리하지 못하는 상황에 보다 대기시간을 가져서 처리를 할 수 있다. httpx import httpx client = httpx.Client(timeout=10) # 연결 시간.. 2024. 2. 20. Python - SQLAlchemy로 row 업데이트(update) 방법 3가지 SQLAlchemy로 row 업데이트하는 방법 으로 여기에서는 많이 사용되는 3가지 방법에 대해서 정리해 본다.. 1. update() 함수 사용: update 함수는 Metadata를 이용해서 테이블 정보를 가져오는 경우 사용할 수 있다. from sqlalchemy import update # 업데이트할 테이블 선택 table = User # 업데이트 조건 설정 where_clause = table.c.id == 1 # 업데이트할 값 설정 values = {"name": "새로운 이름"} # 업데이트 쿼리 실행 session.execute(update(table).where(where_clause).values(values)) session.commit() 2. Model 객체 수정: 이는 모델 구조.. 2024. 2. 19. Python - SQLAlchemy 검색 결과 (exists/ not exists)있는지/없는지 확인 from sqlalchemy import exists query = session.query(User).filter(User.name == "John Doe") if query: # 검색 결과가 있으면실행 print("검색 결과가 있습니다.") if not query: # 검색 결과가 없으면 실행 print("검색 결과가 없습니다.") 다음은 SQLAlchemy에서 검색 결과가 있는지 혹은 없는지에 따라서 처리해야 하는 상황에 사용하는 방법 몇가지를 여기에 정리해 본다. 1. first() 또는 one() 메서드 사용 first() 또는 one() 메서드는 쿼리 결과의 첫 번째 행을 가져옵니다. 결과가 없으면 예외를 발생시킵니다. 다음과 같이 사용할 수 있습니다. from sqlalchemy.orm im.. 2024. 2. 19. Python - 임포트 함수 참조 순서 다른 파이썬 파일에 있는 변수, 함수, 클래스를 사용하기 위해서는 해당 변수, 함수, 클래스가 들어있는 모듈이나 패키지를 import해야 한다. import [모듈이나 패키지] 모듈과 패키지 임포트 참조 순서 import 할 때 모듈과 패키지를 찾기 위해 다음과 같은 장소를 순서대로 검색합니다. 1. 내장함수(sys.modules) 파이썬이 이미 import한 모듈과 패키지를 저장하고 있는 경로 print() 같은 것이 내장함수 이다. 2. 공식함수(built-in modules) 파이썬에서 제공하는 공식 라이브러리입니다. 가장 기본적으로 제공하는 함수들, os 라이브러리 등이 공식함수 이다. 3. 설치함수(sys.path) 로컬 프로젝트들의 경로에 존재하는 경로로, 가장 마지막에 찾게 된다. 직접 구성.. 2024. 2. 19. Python - Uvicorn/Gunicorn Connection reset by peer를 해결할 수 있는 방법 "Connection reset by peer" 오류는 서버와 클라이언트 간의 연결이 클라이언트 측에서 예기치 않게 종료되었음을 나타낸다. 이는 다양한 원인으로 인해 발생할 수 있으며, 클라이언트 측에서 해결할 수 있는 경우도 있다. "connection reset by peer" 오류가 발생하는 경우 여러 가지 원인이 있을 수 있다. 가장 일반적인 원인은 다음과 같다. 클라이언트 연결 끊김: 클라이언트가 요청을 완료하기 전에 연결을 끊으면 이 오류가 발생할 수 있다. 서버 과부하: 서버가 너무 많은 트래픽을 처리하느라 바쁜 경우 클라이언트 연결을 끊을 수 있다. 네트워크 문제: 네트워크 문제로 인해 클라이언트와 서버 간의 연결이 끊어질 수 있다. 코드 버그: 응용 프로그램 코드에 버그가 있으면 이 오류.. 2024. 2. 19. Python - 홀수/짝수 일때 코드 실행, 반올림등 Python에서는 나머지라는 내장함수 %를 이용하면 쉽게 홀수인지 짝수인지를 확인할 수 있다. 어떻게 보면 단순한 코드인데, 가끔 머리가 굳어있을 때 유용한 코드이다. 나누기를 해서 나머지가 1인 경우 number = 11 if number % 2 == 1: print(f"{number}은 홀수입니다.") # 홀수일 때 실행할 코드 else: print(f"{number}은 짝수입니다.") 소수점이 있는 경우에는 math 함수를 이용해서 소수점을 별도로 처리해주면 된다. 소수점 구분 import math number = 3.14 whole_number, fraction = math.modf(number) if whole_number % 2 == 1: print(f"{number}은 홀수입니다.") els.. 2024. 2. 19. Python - Datetime 날짜 문자열 변환 strftime() 활용 날짜는 여러가지로 활용하는 요소가 많다, 특히 다른 데이터 형태로 활용해야 하는 경우 날짜를 원하는 문자열로 변경해서 활용하는것이 가장 많이 사용되는 방식으로 datetime에서 제공하는 문자열 변환 함수 strftime에 대해서 알아보도록 하자. strftime을 이용하면 datetime의 값을 문자열로 변경할 수 있으며, 변환시 사용할 수 있는 주요 메소드는 다음과 같다. 메소드 마다 특정 자리로 고정되어 있으며, 값이 없는 경우 0으로 표현하도록 되어 있다. 10진수 표기 - 2자리 %d : 날짜 표시 %m : 월 표시 %y : 년도 표시 %H : 24시간 표기 %I : 12시간 표기 %M : 분 %S : 초 4자리 %Y : 년도 6자리 %f : 마이크로 초 (6자리) 사용시 주의할 점은 y는 대소.. 2022. 5. 10. 이전 1 ··· 10 11 12 13 14 다음 반응형