File size: 1,855 Bytes
a005c19 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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}")
|