프로그래밍/Python 99

TypeError: Boolean value of this clause is not defined 해결하기

문제점 및 증상 sqlalchemy + mysqlconnector 패키지를 이용하여 MariaDB를 연동하는 작업을 하던중에 갑작스럽게 다음과 같은 오류를 만나게 되었습니다. File "C:\Dev\Python\Python38\lib\site-packages\mysql\connector\cursor.py", line 532, in execute if not operation: File "C:\Dev\Python\Python38\lib\site-packages\sqlalchemy\sql\elements.py", line 594, in __bool__ raise TypeError("Boolean value of this clause is not defined") TypeError: Boolean value ..

파이썬의 장점 / 단점

https://python.land/why-people-hate-python 요 근래 파이썬을 깊게 공부하면서 느껴지는 바가 있었는데, 우연하게 위 글을 접하고, 파이썬을 공부하며 느낀점과 함께 생각난 바를 정리해 봅니다. 파이썬의 가장 큰 장점으로 배우기 쉽다는 점을 가장 큰 장점으로 꼽습니다. 배우기 쉬운 이유는 언어적 특징으로 보면, 널리 알려진 C나, Java와는 다르게 dynamic typing을 지원하여 데이터형이나, 클래스를 생각하지 않고 변수를 쉽게 선언하고 만들 수 있습니다. 또한 파이썬에서 모든 것이 클래스가 인스턴스화된 객체로 취급되며, 언제든지 필요한 속성 및 메소드들을 손쉽게 추가할 수 있는데다가 복잡한 가시성이 없이 모든 것이 public 으로 공개되어 있습니다. 추상화, 추상 ..

문자열을 날짜로 변환하는 방법

자꾸만 헷갈리는 파이썬에서 문자열을 날짜로 변환하는 방법에 대하여 정리해 둡니다. datetime.datetime.strptime() 함수를 이용하면, 간단하게 문자열을 날짜로 변환할 수 있습니다. # 날짜 변환에 대한 예제 import datetime as dt # value_error = dt.datetime.strptime('02-4-23', '%y-%m-%D') # ValueError: 'D' is a bad directive in format '%y-%m-%D' converted_day = dt.datetime.strptime('02-4-23', '%y-%M-%d') print(converted_day) # O..

[Python] os.mkdir() 폴더 생성시, "FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다" 오류 대처

문제점 및 증상 폴더 생성을 위하여 다음과 같이 코드를 작성하였습니다. img_path = current_app.root_path + '/static/img/receipts/' + datetime.datetime.now().strftime('%Y/%m/') if not os.path.exists(img_path): os.mkdir(img_path) 폴더를 생성하는 과정에 다음과 같은 오류가 발생하였습니다. File "D:\Dev\Web\accounting\server\app\controllers\api\receipt_file.py", line 28, in post os.mkdir(img_path) FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다: 'D:\\Dev\..

[python] len() 함수 vs count() 메소드

자바 같은 경우, "length" 속성을 통하여 문자열의 길이나, 배열의 개수를 알 수 있었는데, 파이썬의 경우에는 len() 함수를 이용합니다. 일부 클래스에서는 count() 메소드를 통하여 항목의 개수를 반환하는 경우가 있었지만, 파이썬은 약간 다릅니다. 시퀀스나 컬렉션에 대한 항목 개수를 얻기 위해서는 len() 함수를 이용하고, 시퀀스 객체에 대한 count() 메소드의 경우, 입력한 서브 시퀀스가 중첩되지 않게 나타나는 회수를 반환합니다. 각각의 함수들에 대해 자세히 살펴보면 다음과 같습니다. len() 함수 파이썬에서 시퀀스(문자열, bytes, bytearray, 리스트, 튜플, range 등) 또는 컬렉션(딕셔너리, set)의 길이 (항목 수)를 얻는데 이용합니다. import array..

[Python] "Unicode-objects must be encoded before hashing" 오류 대처법

hashlib 패키지의 md5() 함수를 이용하여 문자열에 대한 해쉬값을 구하는 예제입니다. import hashlib text = 'asdf' enc = hashlib.md5() enc.update(text) encText = enc.hexdigest() print(encText) 그러나, 실행하면 다음과 같은 오류가 발생하였습니다. Traceback (most recent call last): File "d:\Dev\Python\Test\hello.py", line 8, in enc.update(text) TypeError: Unicode-objects must be encoded before hashing MD5 해쉬값을 구하기 위해서, update() 함수에 전달해야할 데이터는 byte array..

datetime 다루기 (날짜 연산 및 timezone)

문자열에서 datetime 객체로 변환 문자열에서 날짜를 추출하여 datetime 객체를 얻기 위해서는 datetime.strptime() 클래스 함수를 이용합니다. import datetime as dt date_string = '2020-12-10T04:26:45' date = dt.datetime.strptime(date_string, '%Y-%m-%dT%H:%M:%S') print(date) # 실행 결과 # 2020-12-10 04:26:45 datetime.strptime() 클래스 함수에서 지정할 수 있는 더 자세한 날짜 형식은 아래 참고자료 ( "datetime — 기본 날짜와 시간 형" )를 확인해 보시면 됩니다. datetime 연산 (날짜 및 시간 연산) 날짜 연산은 datetime...

데이터 형 변환(type cast) : str, bool, int, float, chr

개요 파이썬에서 데이터의 형을 변환 (type case) 방법에 대하여 알아보겠습니다. 기본적 데이터 형에 대한 형 변환 (type case)은 다음과 같습니다. 문자열 변환 = str() 불리언 변환 = bool() 정수 변환 = int() 실수 변환 = float() 문자 변환 = chr() 위 형변환 중에서 str(), bool() 두 경우는 어떤한 값을 넣어도 해당 데이터 형으로 변환이 되어 버리는 강력한 기능을 갖고 있으나, 나머지 int(), float(), chr() 변환 함수에는 변환이 가능하지 않은 데이터를 입력하게 되면, "ValueError"가 발생하게 됩니다. 이 부분을 유념하여 try ... except ... 예외 처리가 반드시 필요합니다. 순차적으로 데이터 형 변환(type c..

list의 모든 문자열을 int 값으로 변경하기

다음과 같이 문자열로 이루어진 리스트가 주어졌을 때, 리스트의 모든 문자열을 정수형(int)으로 모두 변경하는 방법을 알아 보겠습니다. str_list = ['1', '2', '3'] # convert int list int_list = [1, 2, 3] map() 함수를 이용하면 간단하게 변경할 수 있습니다. int_list = map(int, str_list) # in Python 2.x int_list = list(map(int, str_list)) # in Python 3.x map() 함수를 이용하면, 뭔가 있어 보입니다. ^^ 다음은 간단하게 for 문을 이용한 방법입니다. int_list = [int(i) for i in str_list] for 문을 이용한 방법은 뭔가 더 직관적입니다. 다..

728x90