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 에 추가하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.