PHpullh
학습 라이브러리/Python/CSV & JSON & 환경 변수

PYTHON · 파일/IO

CSV & JSON & 환경 변수

실무에서 자주 쓰는 데이터 포맷 처리와 환경 변수 관리.

파일/IO중급csvjsonos.getenvdotenv환경변수

핵심 설명

실무에서 자주 쓰는 데이터 포맷 처리와 환경 변수 관리.

Python code

import csv, json, os
from pathlib import Path

# CSV 읽기
with open("data.csv", newline="", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["name"], row["score"])

# CSV 쓰기
fields = ["name", "score", "grade"]
rows = [
    {"name": "Alice", "score": 95, "grade": "A"},
    {"name": "Bob",   "score": 82, "grade": "B"},
]
with open("output.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=fields)
    writer.writeheader()
    writer.writerows(rows)

# JSON — ensure_ascii=False 로 한글 보존
data = {"이름": "앨리스", "점수": 95}
json_str = json.dumps(data, ensure_ascii=False, indent=2)
parsed  = json.loads(json_str)

# 파일로 저장/로드
Path("data.json").write_text(json_str, encoding="utf-8")
with open("data.json", encoding="utf-8") as f:
    loaded = json.load(f)

# 환경 변수
from dotenv import load_dotenv   # pip install python-dotenv

load_dotenv()  # .env 파일 로드
db_url  = os.getenv("DATABASE_URL", "sqlite:///local.db")
api_key = os.environ.get("API_KEY")
port    = int(os.getenv("PORT", "8080"))

학습 팁

json.dumps()ensure_ascii=False를 설정하지 않으면 한글이 \uXXXX 형태로 이스케이프됩니다.

주의할 점

API 키, DB 비밀번호 등 민감 정보는 절대 코드에 직접 넣지 마세요. .env 파일 + python-dotenv를 사용하고 .gitignore에 추가하세요.

자주 묻는 질문

CSV & JSON & 환경 변수란 무엇인가요?

실무에서 자주 쓰는 데이터 포맷 처리와 환경 변수 관리.

CSV & JSON & 환경 변수 학습 시 주의할 점은 무엇인가요?

API 키, DB 비밀번호 등 민감 정보는 절대 코드에 직접 넣지 마세요. .env 파일 + python-dotenv 를 사용하고 .gitignore 에 추가하세요.