Spaces:
Sleeping
Sleeping
wenbemi
commited on
Update app.py
Browse files
app.py
CHANGED
|
@@ -50,20 +50,43 @@ def load_json_data(file_path):
|
|
| 50 |
with open(file_path, "r", encoding="utf-8") as f:
|
| 51 |
return json.load(f)
|
| 52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
# ───────────────────────────────────── 데이터 로드
|
| 54 |
# trip_url = st.secrets.get("TRIPDATA_URL")
|
| 55 |
# if not trip_url:
|
| 56 |
# st.error("TRIPDATA_URL 미설정: Streamlit Secrets에 URL을 넣어주세요.")
|
| 57 |
# st.stop()
|
| 58 |
|
| 59 |
-
travel_df =
|
| 60 |
-
external_score_df =
|
| 61 |
-
festival_df =
|
| 62 |
-
weather_df =
|
| 63 |
-
package_df =
|
| 64 |
-
master_df =
|
| 65 |
theme_title_phrases = load_json_data("theme_title_phrases.json")
|
| 66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
# ───────────────────────────────────── streamlit용 함수
|
| 68 |
def init_session():
|
| 69 |
if "chat_log" not in st.session_state:
|
|
|
|
| 50 |
with open(file_path, "r", encoding="utf-8") as f:
|
| 51 |
return json.load(f)
|
| 52 |
|
| 53 |
+
@st.cache_data
|
| 54 |
+
def load_data(path):
|
| 55 |
+
try:
|
| 56 |
+
# UTF-8 인코딩으로 먼저 시도
|
| 57 |
+
df = pd.read_csv(path, encoding='utf-8')
|
| 58 |
+
print(f"✅ SUCCESS (utf-8): {path} 로드 성공. 컬럼: {df.columns.tolist()}")
|
| 59 |
+
return df
|
| 60 |
+
except UnicodeDecodeError:
|
| 61 |
+
# 실패하면 'cp949' (한국어 윈도우 환경) 인코딩으로 재시도
|
| 62 |
+
print(f"⚠️ INFO: {path} utf-8 디코딩 실패. cp949로 재시도합니다.")
|
| 63 |
+
df = pd.read_csv(path, encoding='cp949')
|
| 64 |
+
print(f"✅ SUCCESS (cp949): {path} 로드 성공. 컬럼: {df.columns.tolist()}")
|
| 65 |
+
return df
|
| 66 |
+
except Exception as e:
|
| 67 |
+
print(f"❌ ERROR: {path} 로드 중 에러 발생: {e}")
|
| 68 |
+
return pd.DataFrame() # 오류 발생 시 빈 데이터프레임 반환
|
| 69 |
+
|
| 70 |
+
|
| 71 |
# ───────────────────────────────────── 데이터 로드
|
| 72 |
# trip_url = st.secrets.get("TRIPDATA_URL")
|
| 73 |
# if not trip_url:
|
| 74 |
# st.error("TRIPDATA_URL 미설정: Streamlit Secrets에 URL을 넣어주세요.")
|
| 75 |
# st.stop()
|
| 76 |
|
| 77 |
+
travel_df = load_data("트립닷컴_감정_테마_한줄설명_통합_07_08.csv")
|
| 78 |
+
external_score_df = load_data("클러스터_포함_외부요인_종합점수_결과_최종.csv")
|
| 79 |
+
festival_df = load_data("전처리_통합지역축제.csv")
|
| 80 |
+
weather_df = load_data("전처리_날씨_통합_07_08.csv")
|
| 81 |
+
package_df = load_data("모두투어_컬럼별_개수_07_08.csv")
|
| 82 |
+
master_df = load_data("나라_도시_리스트.csv")
|
| 83 |
theme_title_phrases = load_json_data("theme_title_phrases.json")
|
| 84 |
|
| 85 |
+
# 만약 travel_df가 비어있으면 앱 중단 (오류 확인용)
|
| 86 |
+
if travel_df.empty:
|
| 87 |
+
st.error("travel_df 로딩에 실패했습니다. 로그를 확인해주세요.")
|
| 88 |
+
st.stop()
|
| 89 |
+
|
| 90 |
# ───────────────────────────────────── streamlit용 함수
|
| 91 |
def init_session():
|
| 92 |
if "chat_log" not in st.session_state:
|