|
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: |
|
|
|
json_string = json_string.replace("\n", "\\n") |
|
|
|
|
|
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: |
|
|
|
with open(json_file_path, 'r') as json_file: |
|
json_data = json.load(json_file) |
|
|
|
|
|
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}") |
|
|
|
|