Spaces:
Sleeping
Sleeping
import os | |
import json | |
from dotenv import load_dotenv | |
load_dotenv() | |
def get_json_from_env_var(env_var_name): | |
""" | |
νκ²½ λ³μμμ JSON λ°μ΄ν°λ₯Ό κ°μ Έμ λμ λλ¦¬λ‘ λ³ννλ ν¨μ. | |
:param env_var_name: νκ²½ λ³μ μ΄λ¦ | |
:return: λμ λ리 ννμ JSON λ°μ΄ν° | |
""" | |
json_string = os.getenv(env_var_name) | |
if not json_string: | |
raise EnvironmentError(f"νκ²½ λ³μ '{env_var_name}'κ° μ€μ λμ§ μμμ΅λλ€.") | |
try: | |
# μ€λ°κΏ(\n)μ μ΄μ€μΌμ΄ν λ¬Έμ(\\n)λ‘ λ³ν | |
json_string = json_string.replace("\n", "\\n") | |
# JSON λ¬Έμμ΄μ λμ λλ¦¬λ‘ λ³ν | |
json_data = json.loads(json_string) | |
except json.JSONDecodeError as e: | |
raise ValueError(f"JSON λ³ν μ€ν¨: {e}") | |
return json_data | |
def json_to_env_var(json_file_path, env_var_name="JSON_ENV_VAR"): | |
""" | |
μ£Όμ΄μ§ JSON νμΌμ λ°μ΄ν°λ₯Ό νκ²½ λ³μ ννλ‘ λ³ννμ¬ μΆλ ₯νλ ν¨μ. | |
:param json_file_path: JSON νμΌ κ²½λ‘ | |
:param env_var_name: νκ²½ λ³μ μ΄λ¦ (κΈ°λ³Έκ°: JSON_ENV_VAR) | |
:return: None | |
""" | |
try: | |
# JSON νμΌ μ½κΈ° | |
with open(json_file_path, 'r') as json_file: | |
json_data = json.load(json_file) | |
# JSON λ°μ΄ν°λ₯Ό λ¬Έμμ΄λ‘ λ³ν | |
json_string = json.dumps(json_data) | |
# νκ²½ λ³μ ννλ‘ μΆλ ₯ | |
env_variable = f'{env_var_name}={json_string}' | |
print("\nνκ²½ λ³μλ‘ μ¬μ©ν μ μλ μΆλ ₯κ°:\n") | |
print(env_variable) | |
print("\nμ κ°μ .env νμΌμ 볡μ¬νμ¬ λΆμ¬λ£μΌμΈμ.") | |
except FileNotFoundError: | |
print(f"νμΌμ μ°Ύμ μ μμ΅λλ€: {json_file_path}") | |
except json.JSONDecodeError: | |
print(f"μ ν¨ν JSON νμΌμ΄ μλλλ€: {json_file_path}") | |