#!/usr/bin/env python3 """ 삼소음에 사용되는 약재들의 성분 코드 확인 """ import sqlite3 def check_herb_codes(): """약재 성분 코드 확인""" # 삼소음에 사용되는 약재들 herbs_to_check = [ "인삼", "소엽", # 자소엽 "전호", "반하", "갈근", "적복령", # 적복령 또는 복령 "대조", # 대추 "진피", "길경", "지각", "감초", "건강" ] conn = sqlite3.connect('database/kdrug.db') cursor = conn.cursor() herb_codes = {} print("🌿 삼소음 약재 성분 코드 확인") print("="*60) for herb in herbs_to_check: # 정확한 이름으로 먼저 검색 cursor.execute(""" SELECT ingredient_code, herb_name, herb_name_hanja FROM herb_masters WHERE herb_name = ? """, (herb,)) result = cursor.fetchone() # 정확한 이름이 없으면 포함된 이름으로 검색 if not result: # 특수 케이스 처리 if herb == "소엽": search_term = "자소엽" elif herb == "대조": search_term = "대추" elif herb == "적복령": search_term = "적복령" else: search_term = herb cursor.execute(""" SELECT ingredient_code, herb_name, herb_name_hanja FROM herb_masters WHERE herb_name LIKE ? OR herb_name = ? ORDER BY CASE WHEN herb_name = ? THEN 0 ELSE 1 END, LENGTH(herb_name) LIMIT 1 """, (f'%{search_term}%', search_term, search_term)) result = cursor.fetchone() if result: herb_codes[herb] = result[0] print(f"✅ {herb}: {result[0]} ({result[1]})") else: print(f"❌ {herb}: 찾을 수 없음") # 유사한 이름 검색 cursor.execute(""" SELECT herb_name FROM herb_masters WHERE herb_name LIKE ? LIMIT 5 """, (f'%{herb[:2]}%',)) similar = cursor.fetchall() if similar: print(f" 유사한 약재: {', '.join([s[0] for s in similar])}") # 복령 관련 추가 확인 if "적복령" not in herb_codes or not herb_codes.get("적복령"): print("\n📌 복령 관련 약재 추가 검색:") cursor.execute(""" SELECT ingredient_code, herb_name FROM herb_masters WHERE herb_name LIKE '%복령%' ORDER BY herb_name """) bokryung_list = cursor.fetchall() for code, name in bokryung_list: print(f" - {code}: {name}") conn.close() return herb_codes if __name__ == "__main__": herb_codes = check_herb_codes() print("\n📊 약재 코드 매핑 결과:") print("-"*60) for herb, code in herb_codes.items(): if code: print(f'"{herb}": "{code}",')