블로그/개발자

Python으로 그램당 금 시세 가져오기 (24K, 22K, 18K)

API 키 없이 Python으로 24K, 22K, 18K의 그램당 금 시세를 가져오고 Decimal로 안전하게 계산하는 방법입니다.

개발자
Python으로 그램당 금 시세 가져오기 (24K, 22K, 18K)

애플리케이션에 그램당 금 시세가 필요하다면 공개 /v1/carat 엔드포인트에서 순도별 값을 직접 요청하세요. 한 번의 요청으로 24K, 22K, 21K, 20K, 18K, 16K, 14K, 10K 값을 받을 수 있으며 테스트에는 API 키가 필요하지 않습니다.

Python으로 그램당 금 시세 가져오기

표준 라이브러리만 사용하고 가격을 Decimal로 읽어 부동소수점 오차를 피합니다.

import json
from decimal import Decimal
from urllib.parse import urlencode
from urllib.request import Request, urlopen

url = "https://api.goldprice.dev/v1/carat?" + urlencode({"currency": "USD"})
with urlopen(Request(url, headers={"Accept": "application/json"}), timeout=10) as response:
    payload = json.load(response)

prices = {
    "currency": payload["currency"],
    "timestamp": payload["timestamp"],
    "24k": Decimal(payload["price_gram_24k"]),
    "22k": Decimal(payload["price_gram_22k"]),
    "18k": Decimal(payload["price_gram_18k"]),
}

USDEUR, GBP, INR, IDR, AED, JPY 등 지원 통화로 바꿀 수 있습니다. 관측 시점을 나타내는 timestamp도 가격과 함께 저장하세요.

금 제품의 가치 계산하기

12.5그램 18K 제품은 18K 그램 가격에 무게를 곱하고 최종 금액을 한 번만 반올림합니다.

from decimal import Decimal, ROUND_HALF_UP

weight = Decimal("12.5")
value = (weight * prices["18k"]).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)

엔드포인트는 요청 통화의 보조 단위 정밀도로 그램 가격을 제공합니다. 결과는 금 함량의 참고 가치이며 소매가나 매입가가 아닙니다. 세공비, 보석, 세금, 딜러 프리미엄, 정련비, 매입 공제는 별도입니다.

API의 그램·순도 계산 방식

API는 XAU 가격을 선택 통화로 환산하고 트로이온스 가격을 31.1034768로 나눈 뒤 22 / 24 또는 18 / 24 같은 순도 비율을 곱합니다.

운영 체크리스트

  • 계산 중에는 값을 Decimal로 유지합니다.
  • 가격과 timestamp를 함께 저장합니다.
  • 필요한 최신성에 맞춰 성공 응답을 캐시합니다.
  • 실패를 0이나 새 타임스탬프로 바꾸지 않습니다.
  • 결제 가격이 아닌 참고값으로 표시합니다.
  • 계정 키는 서버에만 보관합니다.

전체 필드는 carat API 문서, 일별 OHLC는 과거 데이터 API를 확인하세요.

관련 가이드

goldprice.dev

실시간 금 시세, 과거 OHLC 데이터, 다중 소스 집계 — REST 및 SSE로 제공됩니다.