Language&Framework/Python21 [python] TypeError: Object of type datetime is not JSON serializable 에러 파이썬에서 json.dump 모듈을 사용해 json데이터로 저장하는 과정 중에 datetime.now() 값을 저장하려고 하는데 TypeError: Object of type datetime is not JSON serializable 위와 같은 에러가 발생했다. 찾아보니 파이썬의 날짜/시간을 json이 제대로 인식하지 못해서 발생하는 문제였다. datetime을 받아올 때 문자열로 변환해주는 .strftime()를 사용해 저장하거나 json.dump안에 default=str 옵션을 추가해주면 해결된다! 2023. 3. 7. [pandas] 파일 열기 모드(mode='w') os.path.exists(new_file_path): with pd.ExcelWriter(new_file_path, mode='w') as writer: 위의 코드처럼 excel파일로 저장하려고 할 때, 파일이 이미 존재하는 경우에도 에러가 나지 않고 덮어쓰기를 하고 싶다면, mode='w'로 설정하면 된다. mode='w'는 write 모드로 파일을 열기 때문에, 존재하는 파일일 경우에도 덮어쓰기를 한다. python에서의 파일 열기모드에 대해 정리해놓은 링크이다. https://www.delftstack.com/ko/howto/python/python-open-modes/ Python 파일 열기 모드 이 튜토리얼은 모든 파이썬 개방 모드가 무엇인지 보여줍니다 www.delftstack.com 2023. 2. 28. [streamlit] 파일 업로드 후 바로 저장하기 import streamlit as st import pandas as pd import os st.header('1. guide.csv 파일을 업로드해주세요.') uploaded_file = st.file_uploader('', type='csv') if uploaded_file: st.header('guide.csv') df = pd.read_csv(uploaded_file) st.write(df) # guide.csv를 업로드하면 동일 디렉토리에 바로 저장되도록 하는 코드 csv_dir = "./" if not os.path.exists(csv_dir): os.makedirs(csv_dir) csv_file_path = os.path.join(csv_dir, uploaded_file.name) wi.. 2023. 2. 28. [pandas] 데이터프레임의 마지막 row 삭제하기 생성한 데이터프레임의 구간마다 빈칸으로 한칸씩 띄우기 위해 빈 row를 추가해주고 최종적으로 생성된 데이터프레임의 맨 마지막 빈 row를 삭제하기 위해 df = df_concat.drop(df_concat.index[-1]) 위와 같은 코드를 작성했는데, 구간마다 빈칸이 생기는 것도 있고 안생기는 것도 있었다. 맨마지막 빈 row를 삭제하기 위해 작성한 위의 코드 이전의 코드는 문제없이 돌아가는데 위의 코드가 실행되면 데이터가 변경되는 문제였다. 그래서 drop할때 index를 지정하는 방법 말고 다른 방법을 알아보다가 df = df_concat[:-1] 위의 코드로 수정하니까 맨 마지막 빈 row만 문제없이 삭제되고 구간마다 빈칸도 잘 들어가게 되었다 !! 2023. 2. 24. [pandas] to_excel 할 때 저장할 파일의 이름이 같을 때 시트가 덮어씌워지는 문제 ''' 합쳐진 데이터프레임을 엑셀 파일로 저장 ''' new_file_path = f"./인덱스추출_update/{uuid[i]}({size[i]}).xlsx" df_concat.to_excel(new_file_path, index=False) with pd.ExcelWriter(new_file_path) as writer: df_concat.to_excel(writer, sheet_name=f"{label[i]}Source({size[i]})", index=False) 합쳐진 데이터프레임을 저장하려고 하는데 저장하려고 하는 엑셀 파일의 이름이 같으면 시트가 따로 저장되지 않고 덮어씌워져서 저장되는 문제가 있었다. ''' 합쳐진 데이터프레임을 엑셀 파일로 저장 ''' new_file_path = f"./.. 2023. 2. 24. [pandas] 데이터의 마지막줄에 빈칸을 추가할 때 Warning 메세지 엑셀파일에 저장한 데이터의 마지막 줄에 빈 row를 추가하려고 아래와 같은 코드를 작성했는데, result.loc[result.shape[0]] = None 아래 처럼 경고 메세지가 나와서 찾아보니, FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning. -> 빈 Series의 경우 자동으로 데이터 타입이 'float64'가 아닌 'object'가 될 예정이라는 FutureWarning입니다. 이를 해결하기 위해서는 빈 Series에 대해 데이터 타입을 명시적으로 지정해주면 .. 2023. 2. 22. 이전 1 2 3 4 다음