wenbemi commited on
Commit
e45ddeb
·
verified ·
1 Parent(s): e182467

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -6
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 = load_travel_data("트립닷컴_감정_테마_한줄설명_통합_07_08.csv")
60
- external_score_df = load_travel_data("클러스터_포함_외부요인_종합점수_결과_최종.csv")
61
- festival_df = load_travel_data("전처리_통합지역축제.csv")
62
- weather_df = load_travel_data("전처리_날씨_통합_07_08.csv")
63
- package_df = load_travel_data("모두투어_컬럼별_개수_07_08.csv")
64
- master_df = load_travel_data("나라_도시_리스트.csv")
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: