merge(마스터): main_desktop_1 재료_유가전력 합침 — 키 대장 「다음」·「폐기」 합치기

- 「다음」 MO 73 채택(저쪽 새 키) · 나머지는 같음
- 「폐기」 는 양쪽 합집합 — 유류 5줄·되풀이 기호·MN 유지

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgUhN55Z3BCYhUJTjwTNfj
This commit is contained in:
2026-09-20 18:53:40 +09:00
co-authored by Claude Opus 5
13 changed files with 9303 additions and 103 deletions
+73 -37
View File
@@ -1,5 +1,5 @@
{
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 23981, "MO": 37, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 337, "GC": 1104, "QC": 2060},
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 23981, "MO": 73, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 337, "GC": 1104, "QC": 2060},
"폐기": {"MT000001": "자재품목 휘발유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000002": "자재품목 경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000003": "자재품목 선박용경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000004": "자재품목 중유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000005": "자재품목 등유 — 값이 비고 글뿐 · 유가 테이블로 감", "LB000399": "이름 「〃」 — 직종이 아니라 되풀이 기호 · 소요량 13-6-9 에서 윗줄 직종으로 바로잡음", "MN": "재료_나라장터자재 — old 로 옮김 · 로직은 자재품목·품셈재료로 갈아 끼움"},
"키": {
"CC000001": {"원문번호": "공통 1-3-1 콘크리트 및 포장용 재료", "파일": "계수_건설품셈_01장_적용기준.json"},
@@ -2916,42 +2916,78 @@
"LB000406": {"원문번호": "목도", "파일": "인력.json", "폐기": "LB000045"},
"LB000407": {"원문번호": "스레이트공", "파일": "인력.json", "폐기": "LB000036"},
"LB000408": {"원문번호": "갱부", "파일": "인력.json", "폐기": "LB000003"},
"MO000001": {"원문번호": "휘발유:전국평균", "파일": "재료_오피넷유가.json"},
"MO000002": {"원문번호": "경유:전국평균", "파일": "재료_오피넷유가.json"},
"MO000003": {"원문번호": "휘발유:전국", "파일": "재료_오피넷유가.json"},
"MO000004": {"원문번호": "휘발유:서울", "파일": "재료_오피넷유가.json"},
"MO000005": {"원문번호": "휘발유:경기", "파일": "재료_오피넷유가.json"},
"MO000006": {"원문번호": "휘발유:강원", "파일": "재료_오피넷유가.json"},
"MO000007": {"원문번호": "휘발유:충북", "파일": "재료_오피넷유가.json"},
"MO000008": {"원문번호": "휘발유:충남", "파일": "재료_오피넷유가.json"},
"MO000009": {"원문번호": "휘발유:전북", "파일": "재료_오피넷유가.json"},
"MO000010": {"원문번호": "휘발유:경북", "파일": "재료_오피넷유가.json"},
"MO000011": {"원문번호": "휘발유:경남", "파일": "재료_오피넷유가.json"},
"MO000012": {"원문번호": "휘발유:부산", "파일": "재료_오피넷유가.json"},
"MO000013": {"원문번호": "휘발유:제주", "파일": "재료_오피넷유가.json"},
"MO000014": {"원문번호": "휘발유:대구", "파일": "재료_오피넷유가.json"},
"MO000015": {"원문번호": "휘발유:인천", "파일": "재료_오피넷유가.json"},
"MO000016": {"원문번호": "휘발유:대전", "파일": "재료_오피넷유가.json"},
"MO000017": {"원문번호": "휘발유:울산", "파일": "재료_오피넷유가.json"},
"MO000018": {"원문번호": "휘발유:세종", "파일": "재료_오피넷유가.json"},
"MO000019": {"원문번호": "휘발유:전남광주", "파일": "재료_오피넷유가.json"},
"MO000020": {"원문번호": "경유:전국", "파일": "재료_오피넷유가.json"},
"MO000021": {"원문번호": "경유:서울", "파일": "재료_오피넷유가.json"},
"MO000022": {"원문번호": "경유:경기", "파일": "재료_오피넷유가.json"},
"MO000023": {"원문번호": "경유:강원", "파일": "재료_오피넷유가.json"},
"MO000024": {"원문번호": "경유:충북", "파일": "재료_오피넷유가.json"},
"MO000025": {"원문번호": "경유:충남", "파일": "재료_오피넷유가.json"},
"MO000026": {"원문번호": "경유:전북", "파일": "재료_오피넷유가.json"},
"MO000027": {"원문번호": "경유:경북", "파일": "재료_오피넷유가.json"},
"MO000028": {"원문번호": "경유:경남", "파일": "재료_오피넷유가.json"},
"MO000029": {"원문번호": "경유:부산", "파일": "재료_오피넷유가.json"},
"MO000030": {"원문번호": "경유:제주", "파일": "재료_오피넷유가.json"},
"MO000031": {"원문번호": "경유:대구", "파일": "재료_오피넷유가.json"},
"MO000032": {"원문번호": "경유:인천", "파일": "재료_오피넷유가.json"},
"MO000033": {"원문번호": "경유:대전", "파일": "재료_오피넷유가.json"},
"MO000034": {"원문번호": "경유:울산", "파일": "재료_오피넷유가.json"},
"MO000035": {"원문번호": "경유:세종", "파일": "재료_오피넷유가.json"},
"MO000036": {"원문번호": "경유:전남광주", "파일": "재료_오피넷유가.json"},
"MO000001": {"원문번호": "휘발유:전국평균", "파일": "재료_유가전력.json"},
"MO000002": {"원문번호": "경유:전국평균", "파일": "재료_유가전력.json"},
"MO000003": {"원문번호": "휘발유:전국", "파일": "재료_유가전력.json"},
"MO000004": {"원문번호": "휘발유:서울", "파일": "재료_유가전력.json"},
"MO000005": {"원문번호": "휘발유:경기", "파일": "재료_유가전력.json"},
"MO000006": {"원문번호": "휘발유:강원", "파일": "재료_유가전력.json"},
"MO000007": {"원문번호": "휘발유:충북", "파일": "재료_유가전력.json"},
"MO000008": {"원문번호": "휘발유:충남", "파일": "재료_유가전력.json"},
"MO000009": {"원문번호": "휘발유:전북", "파일": "재료_유가전력.json"},
"MO000010": {"원문번호": "휘발유:경북", "파일": "재료_유가전력.json"},
"MO000011": {"원문번호": "휘발유:경남", "파일": "재료_유가전력.json"},
"MO000012": {"원문번호": "휘발유:부산", "파일": "재료_유가전력.json"},
"MO000013": {"원문번호": "휘발유:제주", "파일": "재료_유가전력.json"},
"MO000014": {"원문번호": "휘발유:대구", "파일": "재료_유가전력.json"},
"MO000015": {"원문번호": "휘발유:인천", "파일": "재료_유가전력.json"},
"MO000016": {"원문번호": "휘발유:대전", "파일": "재료_유가전력.json"},
"MO000017": {"원문번호": "휘발유:울산", "파일": "재료_유가전력.json"},
"MO000018": {"원문번호": "휘발유:세종", "파일": "재료_유가전력.json"},
"MO000019": {"원문번호": "휘발유:전남광주", "파일": "재료_유가전력.json"},
"MO000020": {"원문번호": "경유:전국", "파일": "재료_유가전력.json"},
"MO000021": {"원문번호": "경유:서울", "파일": "재료_유가전력.json"},
"MO000022": {"원문번호": "경유:경기", "파일": "재료_유가전력.json"},
"MO000023": {"원문번호": "경유:강원", "파일": "재료_유가전력.json"},
"MO000024": {"원문번호": "경유:충북", "파일": "재료_유가전력.json"},
"MO000025": {"원문번호": "경유:충남", "파일": "재료_유가전력.json"},
"MO000026": {"원문번호": "경유:전북", "파일": "재료_유가전력.json"},
"MO000027": {"원문번호": "경유:경북", "파일": "재료_유가전력.json"},
"MO000028": {"원문번호": "경유:경남", "파일": "재료_유가전력.json"},
"MO000029": {"원문번호": "경유:부산", "파일": "재료_유가전력.json"},
"MO000030": {"원문번호": "경유:제주", "파일": "재료_유가전력.json"},
"MO000031": {"원문번호": "경유:대구", "파일": "재료_유가전력.json"},
"MO000032": {"원문번호": "경유:인천", "파일": "재료_유가전력.json"},
"MO000033": {"원문번호": "경유:대전", "파일": "재료_유가전력.json"},
"MO000034": {"원문번호": "경유:울산", "파일": "재료_유가전력.json"},
"MO000035": {"원문번호": "경유:세종", "파일": "재료_유가전력.json"},
"MO000036": {"원문번호": "경유:전남광주", "파일": "재료_유가전력.json"},
"MO000037": {"원문번호": "실내등유:전국평균", "파일": "재료_유가전력.json"},
"MO000038": {"원문번호": "실내등유:전국", "파일": "재료_유가전력.json"},
"MO000039": {"원문번호": "실내등유:서울", "파일": "재료_유가전력.json"},
"MO000040": {"원문번호": "실내등유:경기", "파일": "재료_유가전력.json"},
"MO000041": {"원문번호": "실내등유:강원", "파일": "재료_유가전력.json"},
"MO000042": {"원문번호": "실내등유:충북", "파일": "재료_유가전력.json"},
"MO000043": {"원문번호": "실내등유:충남", "파일": "재료_유가전력.json"},
"MO000044": {"원문번호": "실내등유:전북", "파일": "재료_유가전력.json"},
"MO000045": {"원문번호": "실내등유:경북", "파일": "재료_유가전력.json"},
"MO000046": {"원문번호": "실내등유:경남", "파일": "재료_유가전력.json"},
"MO000047": {"원문번호": "실내등유:부산", "파일": "재료_유가전력.json"},
"MO000048": {"원문번호": "실내등유:제주", "파일": "재료_유가전력.json"},
"MO000049": {"원문번호": "실내등유:대구", "파일": "재료_유가전력.json"},
"MO000050": {"원문번호": "실내등유:인천", "파일": "재료_유가전력.json"},
"MO000051": {"원문번호": "실내등유:대전", "파일": "재료_유가전력.json"},
"MO000052": {"원문번호": "실내등유:울산", "파일": "재료_유가전력.json"},
"MO000053": {"원문번호": "실내등유:세종", "파일": "재료_유가전력.json"},
"MO000054": {"원문번호": "실내등유:전남광주", "파일": "재료_유가전력.json"},
"MO000055": {"원문번호": "주택용저압:기본_200이하", "파일": "재료_유가전력.json"},
"MO000056": {"원문번호": "주택용저압:기본_201~400", "파일": "재료_유가전력.json"},
"MO000057": {"원문번호": "주택용저압:기본_400초과", "파일": "재료_유가전력.json"},
"MO000058": {"원문번호": "주택용저압:전력량_처음200", "파일": "재료_유가전력.json"},
"MO000059": {"원문번호": "주택용저압:전력량_다음200", "파일": "재료_유가전력.json"},
"MO000060": {"원문번호": "주택용저압:전력량_400초과", "파일": "재료_유가전력.json"},
"MO000061": {"원문번호": "주택용저압:월간최저요금", "파일": "재료_유가전력.json"},
"MO000062": {"원문번호": "일반용갑I저압:기본", "파일": "재료_유가전력.json"},
"MO000063": {"원문번호": "일반용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"},
"MO000064": {"원문번호": "일반용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"},
"MO000065": {"원문번호": "일반용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"},
"MO000066": {"원문번호": "산업용갑I저압:기본", "파일": "재료_유가전력.json"},
"MO000067": {"원문번호": "산업용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"},
"MO000068": {"원문번호": "산업용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"},
"MO000069": {"원문번호": "산업용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"},
"MO000070": {"원문번호": "임시전력갑:기본요금적용", "파일": "재료_유가전력.json"},
"MO000071": {"원문번호": "임시전력갑:전력량요금적용", "파일": "재료_유가전력.json"},
"MO000072": {"원문번호": "임시전력갑:월간최저요금", "파일": "재료_유가전력.json"},
"MP000001": {"원문번호": "레미콘", "파일": "재료_품셈재료.json"},
"MP000002": {"원문번호": "시멘트", "파일": "재료_품셈재료.json"},
"MP000003": {"원문번호": "모래(중량)", "파일": "재료_품셈재료.json"},
@@ -0,0 +1,298 @@
# -*- coding: utf-8 -*-
"""오피넷 유가(휘발유·경유·실내등유) + 한전 전기요금표 별표1(C) → 재료_유가전력.json.
옛 재료_오피넷유가.json 을 잇는 표 — 테이블ID MO 그대로 · 원문번호가 같은 줄은 옛 키를 그대로 씀
(`master_keys.issue`). 휘발유·경유 36줄은 옛 판(전국평균 2026-08-14 · 시도별 2026-09-09) 값을
그대로 지님 — 여기서 새로 안 받음(로직 계산 결과가 이 작업 전후로 갈리지 않게). 새로 받는 것은
① 실내등유(C004, `유가_오피넷/` 최신 전국평균·시도별) ② 전력(한전 전기요금표 별표1(C),
`전기요금_한국전력/20250101/`, 저압 위주 주요 계약종별만 — 나머지는 md 원문만 참조).
쓰기: ./venv/Scripts/python.exe resources/master_data/scripts/build_재료_유가전력.py
"""
from __future__ import annotations
import hashlib
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
import master_keys as mk # noqa: E402
from _migrate_base import dump_master # noqa: E402
ROOT = Path(__file__).resolve().parents[3]
MASTER = Path(__file__).resolve().parents[1]
OIL_DIR = ROOT / "resources/knowledge/original/원가계산/유가_오피넷"
POWER_DIR = ROOT / "resources/knowledge/original/원가계산/전기요금_한국전력/20250101"
OUT = MASTER / "재료_유가전력.json"
OLD_MASTER_BLOB = (
"9de61eb2:resources/master_data/재료_오피넷유가.json" # 휘발유·경유 옛 값 원천(git)
)
def sha256(path: Path) -> str:
return hashlib.sha256(path.read_bytes()).hexdigest()
def latest(pattern: str) -> Path:
hits = sorted(OIL_DIR.glob(pattern))
if not hits:
sys.exit(f"원본 없음: {OIL_DIR}/{pattern}")
return hits[-1]
def old_기름_rows() -> list[dict]:
"""휘발유·경유 36줄 — 옛 재료_오피넷유가.json(git 9de61eb2) 값 그대로. 키는 뺌(다시 이음)."""
import subprocess
text = subprocess.run(
["git", "show", OLD_MASTER_BLOB],
cwd=ROOT,
capture_output=True,
text=True,
check=True,
encoding="utf-8",
).stdout
data = json.loads(text)
rows = []
for r in data[""]:
row = {k: v for k, v in r.items() if k != ""}
row["구분"] = "유류" # 전국평균/시도별 → 유류(상세구분이 그 자리를 이음)
if row.get("출처", "").startswith("오피넷유가"):
row["출처"] = "유가전력 " + row["출처"] # 파일 이름 「유가전력」 출처 모양 규칙
rows.append(row)
return rows
def 실내등유_rows(national: Path, sido: Path) -> list[dict]:
nat = json.loads(national.read_text(encoding="utf-8"))
sd = json.loads(sido.read_text(encoding="utf-8"))
rows = []
national_row = next((r for r in nat.get("전국평균", []) if r["PRODCD"] == "C004"), None)
if national_row:
rows.append(
{
"원문번호": "실내등유:전국평균",
"구분": "유류",
"상세구분": "전국평균",
"이름": "실내등유",
"규격": nat["수집일"],
"단위": "원/L",
"": float(national_row["PRICE"]),
"출처": "유가전력 오피넷유가 C004",
"비고": None,
}
)
for r in sd.get("시도별", {}).get("C004", []):
rows.append(
{
"원문번호": f"실내등유:{r['SIDONM']}",
"구분": "유류",
"상세구분": r["SIDONM"],
"이름": "실내등유",
"규격": sd["수집일"],
"단위": "원/L",
"": r["PRICE"],
"출처": "유가전력 오피넷유가 C004",
"비고": None,
}
)
return rows
POWER_SOURCE = "유가전력 한전 전기요금표 2025-01-01"
# 별표1(C) 저압 위주 주요 계약종별만(원문 § 1.가 · 2.가(1) · 2.다(1) · 6.가) — 그 밖은 md 참조.
POWER_ROWS = [
# 주택용 저압(원문 1.가)
("주택용저압:기본_200이하", "주택용 저압", "기본요금(200kWh 이하)", "원/호", 910, None),
("주택용저압:기본_201~400", "주택용 저압", "기본요금(201~400kWh)", "원/호", 1600, None),
("주택용저압:기본_400초과", "주택용 저압", "기본요금(400kWh 초과)", "원/호", 7300, None),
(
"주택용저압:전력량_처음200",
"주택용 저압",
"전력량요금(처음 200kWh까지)",
"원/kWh",
120.0,
None,
),
(
"주택용저압:전력량_다음200",
"주택용 저압",
"전력량요금(다음 200kWh까지)",
"원/kWh",
214.6,
None,
),
("주택용저압:전력량_400초과", "주택용 저압", "전력량요금(400kWh 초과)", "원/kWh", 307.3, None),
("주택용저압:월간최저요금", "주택용 저압", "월간 최저요금", "원/월", 1000, None),
# 일반용(갑)Ⅰ 저압(원문 2.가(1))
("일반용갑I저압:기본", "일반용(갑) 저압", "기본요금", "원/kW", 6160, None),
(
"일반용갑I저압:전력량_여름철",
"일반용(갑) 저압",
"전력량요금(여름철)",
"원/kWh",
132.4,
None,
),
(
"일반용갑I저압:전력량_봄가을철",
"일반용(갑) 저압",
"전력량요금(봄·가을철)",
"원/kWh",
91.9,
None,
),
(
"일반용갑I저압:전력량_겨울철",
"일반용(갑) 저압",
"전력량요금(겨울철)",
"원/kWh",
119.0,
None,
),
# 산업용(갑)Ⅰ 저압(원문 2.다(1))
("산업용갑I저압:기본", "산업용(갑) 저압", "기본요금", "원/kW", 5550, None),
(
"산업용갑I저압:전력량_여름철",
"산업용(갑) 저압",
"전력량요금(여름철)",
"원/kWh",
107.7,
None,
),
(
"산업용갑I저압:전력량_봄가을철",
"산업용(갑) 저압",
"전력량요금(봄·가을철)",
"원/kWh",
85.9,
None,
),
(
"산업용갑I저압:전력량_겨울철",
"산업용(갑) 저압",
"전력량요금(겨울철)",
"원/kWh",
106.0,
None,
),
# 임시전력(갑)(원문 6.가) — 자체 요율 없이 주택용전력 요금을 그대로 적용
(
"임시전력갑:기본요금적용",
"임시전력(갑)",
"기본요금",
"-",
None,
"주택용 저압 요금 그대로 적용(원문 6.가.(1))",
),
(
"임시전력갑:전력량요금적용",
"임시전력(갑)",
"전력량요금",
"-",
None,
"주택용 저압 요금 그대로 적용(원문 6.가.(2))",
),
("임시전력갑:월간최저요금", "임시전력(갑)", "월간 최저요금", "원/월", 1000, None),
]
def 전력_rows() -> list[dict]:
rows = []
for 번호, 상세, 이름, 단위, , 비고 in POWER_ROWS:
rows.append(
{
"원문번호": 번호,
"구분": "전력",
"상세구분": 상세,
"이름": 이름,
"규격": "2025-01-01",
"단위": 단위,
"": ,
"출처": POWER_SOURCE,
"비고": 비고,
}
)
return rows
def main() -> None:
nat_path = latest("유가_전국평균_*.json")
sido_path = latest("유가_시도별_*.json")
power_md = POWER_DIR / "별표1_월간전기요금표(C)_20250101.md"
rows = old_기름_rows() + 실내등유_rows(nat_path, sido_path) + 전력_rows()
book = mk.load_book()
file = OUT.name
out_rows = []
for r in rows:
key = mk.issue(book, "MO", r["원문번호"], file)
out_rows.append({"": key, **r})
mk.finish(book)
mk.save_book(book)
today = json.loads(nat_path.read_text(encoding="utf-8"))["수집일"]
head = {
"그룹": "재료",
"원문": "유가전력",
"": today,
"원천": [
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_전국평균_2026-08-14.json",
"해시": sha256(OIL_DIR / "유가_전국평균_2026-08-14.json"),
"역할": "primary(휘발유·경유 전국평균 — 옛 판, 안 바꿈)",
},
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_시도별_2026-09-09.json",
"해시": sha256(OIL_DIR / "유가_시도별_2026-09-09.json"),
"역할": "primary(휘발유·경유 시도별 — 옛 판, 안 바꿈)",
},
{
"경로": str(nat_path.relative_to(ROOT)).replace("\\", "/"),
"해시": sha256(nat_path),
"역할": "primary(실내등유 전국평균 — 새로 받음)",
},
{
"경로": str(sido_path.relative_to(ROOT)).replace("\\", "/"),
"해시": sha256(sido_path),
"역할": "primary(실내등유 시도별 — 새로 받음)",
},
{
"경로": str(power_md.relative_to(ROOT)).replace("\\", "/"),
"해시": sha256(power_md),
"역할": "primary(전력)",
},
],
"구분": {
"유류": {
"원문": "오피넷유가",
"기관": "한국석유공사(오피넷)",
"": "휘발유·경유 2026-08-14/09-09 · 실내등유 " + today,
"지식DB": "resources/knowledge/original/원가계산/유가_오피넷/",
},
"전력": {
"원문": "한전 전기요금표 별표1(C)",
"기관": "한국전력공사",
"": "2025-01-01",
"지식DB": "resources/knowledge/original/원가계산/전기요금_한국전력/20250101/",
},
},
"비고": [
"시도별 유가 — 품셈 8-1-7 5호 「유류가격은 해당지역의 가격으로 한다」. 코드 00(전국)은 원문 그대로 두되 지역 선택지에서는 전국평균 판이 맡는다. ⚠ 원천이 시도를 17줄로 주는데 그 가름이 행정구역과 다르다 — 코드 20 이 「전남광주」 한 줄이고 07(전남)·16(광주)은 아예 없다. 원문 이름을 그대로 두고 우리가 쪼개지 않는다.",
"규격 = 기준일(유류: 수집일 · 전력: 시행일) · 구분 = 유류/전력 · 상세구분 = 유류(지역 이름)·전력(계약종별)",
"휘발유·경유는 옛 판(전국평균 2026-08-14 · 시도별 2026-09-09) 값 그대로 — 이번엔 실내등유만 새로 받음(로직 계산 결과가 갈리지 않게). 다음에 유류 전체를 갱신할 땐 이 셋을 한 수집일로 맞출 것.",
"전력비 계상 기준 조문 없음 — 계약예규 「예정가격작성기준」 §19③1·§34③1, 건설품셈 1-5-2호, 산림품셈 1-7-2호 모두 「전력비는 실비를 계상」만 정하고 특정 계약종별 지정 없음.",
"전력 — 별표1(C) 저압 위주 주요 계약종별(주택용·일반용(갑)Ⅰ·산업용(갑)Ⅰ·임시전력(갑))만 올림. 고압·을종·교육용·농사용·가로등 등 나머지 계약종별과 슈퍼유저요금·하계 특례는 md 원문(전기요금_한국전력/20250101/)만 참조.",
],
}
dump_master(OUT, head, out_rows)
print(f"saved {OUT.name} ({len(out_rows)} rows)")
if __name__ == "__main__":
main()
@@ -41,7 +41,7 @@ BOOKS = (
"SW노임",
"산림노임",
"준용대상",
"오피넷유가",
"유가전력",
"자재품목",
"한국은행환율",
"조달청제비율",
@@ -132,7 +132,7 @@ COLS = {
"비고",
"면수",
),
"오피넷유가": (
"유가전력": (
"",
"원문번호",
"구분",
@@ -145,7 +145,7 @@ COLS = {
"비고",
),
}
COLS["한국은행환율"] = COLS["오피넷유가"]
COLS["한국은행환율"] = COLS["유가전력"]
def _detail(name: str) -> str:
+1 -1
View File
@@ -19,7 +19,7 @@ KEY = re.compile(r"[A-Z]{2}\d{6}")
TABLES = {
("인력", None): "LB",
("재료", "자재품목"): "MT",
("재료", "오피넷유가"): "MO",
("재료", "유가전력"): "MO",
("재료", "품셈재료"): "MP",
("기계", None): "EQ",
("소요량", "산림품셈"): "QF",
@@ -1,59 +0,0 @@
{
"그룹": "재료",
"원문": "오피넷유가",
"판": "2026-09-09",
"원천": [
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_전국평균_2026-08-14.json",
"해시": "3726397c89108ca5d98b65c0bc615443d02c6fe84794bd95937dabe46464a747",
"역할": "primary"
},
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_시도별_2026-09-09.json",
"해시": "6f1b58101fbe57be402d44582763ca1d54aea8d9bb5ee9b85b38bdeea2d4e439",
"역할": "primary"
}
],
"비고": [
"시도별 유가 — 품셈 8-1-7 5호 「유류가격은 해당지역의 가격으로 한다」. 코드 00(전국)은 원문 그대로 두되 지역 선택지에서는 전국평균 판이 맡는다. ⚠ 원천이 시도를 17줄로 주는데 그 가름이 행정구역과 다르다 — 코드 20 이 「전남광주」 한 줄이고 07(전남)·16(광주)은 아예 없다. 원문 이름을 그대로 두고 우리가 쪼개지 않는다.",
"규격 = 기준일 · 구분 = 전국평균/시도별 · 상세구분 = 지역 이름"
],
"줄": [
{ "키": "MO000001", "원문번호": "휘발유:전국평균", "구분": "전국평균", "상세구분": "전국평균", "이름": "휘발유", "규격": "2026-08-14", "단위": "원/L", "값": 1863.25, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000002", "원문번호": "경유:전국평균", "구분": "전국평균", "상세구분": "전국평균", "이름": "자동차용경유", "규격": "2026-08-14", "단위": "원/L", "값": 1846.39, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000003", "원문번호": "휘발유:전국", "구분": "시도별", "상세구분": "전국", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1858.93, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000004", "원문번호": "휘발유:서울", "구분": "시도별", "상세구분": "서울", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1905.02, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000005", "원문번호": "휘발유:경기", "구분": "시도별", "상세구분": "경기", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1855.78, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000006", "원문번호": "휘발유:강원", "구분": "시도별", "상세구분": "강원", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1870.23, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000007", "원문번호": "휘발유:충북", "구분": "시도별", "상세구분": "충북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1866.12, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000008", "원문번호": "휘발유:충남", "구분": "시도별", "상세구분": "충남", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1864.78, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000009", "원문번호": "휘발유:전북", "구분": "시도별", "상세구분": "전북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1859.7, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000010", "원문번호": "휘발유:경북", "구분": "시도별", "상세구분": "경북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1852.71, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000011", "원문번호": "휘발유:경남", "구분": "시도별", "상세구분": "경남", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1854.71, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000012", "원문번호": "휘발유:부산", "구분": "시도별", "상세구분": "부산", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1842.66, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000013", "원문번호": "휘발유:제주", "구분": "시도별", "상세구분": "제주", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1889.27, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000014", "원문번호": "휘발유:대구", "구분": "시도별", "상세구분": "대구", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1831.78, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000015", "원문번호": "휘발유:인천", "구분": "시도별", "상세구분": "인천", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1845.64, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000016", "원문번호": "휘발유:대전", "구분": "시도별", "상세구분": "대전", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1836.79, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000017", "원문번호": "휘발유:울산", "구분": "시도별", "상세구분": "울산", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.49, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000018", "원문번호": "휘발유:세종", "구분": "시도별", "상세구분": "세종", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1855.8, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000019", "원문번호": "휘발유:전남광주", "구분": "시도별", "상세구분": "전남광주", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1862.28, "출처": "오피넷유가 B027", "비고": null },
{ "키": "MO000020", "원문번호": "경유:전국", "구분": "시도별", "상세구분": "전국", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1843.79, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000021", "원문번호": "경유:서울", "구분": "시도별", "상세구분": "서울", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1886.15, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000022", "원문번호": "경유:경기", "구분": "시도별", "상세구분": "경기", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.22, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000023", "원문번호": "경유:강원", "구분": "시도별", "상세구분": "강원", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1859.9, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000024", "원문번호": "경유:충북", "구분": "시도별", "상세구분": "충북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1851.55, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000025", "원문번호": "경유:충남", "구분": "시도별", "상세구분": "충남", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1850.08, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000026", "원문번호": "경유:전북", "구분": "시도별", "상세구분": "전북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1846.86, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000027", "원문번호": "경유:경북", "구분": "시도별", "상세구분": "경북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.1, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000028", "원문번호": "경유:경남", "구분": "시도별", "상세구분": "경남", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1837.71, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000029", "원문번호": "경유:부산", "구분": "시도별", "상세구분": "부산", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1825.55, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000030", "원문번호": "경유:제주", "구분": "시도별", "상세구분": "제주", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1869.16, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000031", "원문번호": "경유:대구", "구분": "시도별", "상세구분": "대구", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1815.72, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000032", "원문번호": "경유:인천", "구분": "시도별", "상세구분": "인천", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1829.14, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000033", "원문번호": "경유:대전", "구분": "시도별", "상세구분": "대전", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1824.58, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000034", "원문번호": "경유:울산", "구분": "시도별", "상세구분": "울산", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1826.63, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000035", "원문번호": "경유:세종", "구분": "시도별", "상세구분": "세종", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1841.72, "출처": "오피넷유가 D047", "비고": null },
{ "키": "MO000036", "원문번호": "경유:전남광주", "구분": "시도별", "상세구분": "전남광주", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1850.47, "출처": "오피넷유가 D047", "비고": null }
]
}
@@ -0,0 +1,127 @@
{
"그룹": "재료",
"원문": "유가전력",
"판": "2026-09-20",
"원천": [
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_전국평균_2026-08-14.json",
"해시": "3726397c89108ca5d98b65c0bc615443d02c6fe84794bd95937dabe46464a747",
"역할": "primary(휘발유·경유 전국평균 — 옛 판, 안 바꿈)"
},
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_시도별_2026-09-09.json",
"해시": "6f1b58101fbe57be402d44582763ca1d54aea8d9bb5ee9b85b38bdeea2d4e439",
"역할": "primary(휘발유·경유 시도별 — 옛 판, 안 바꿈)"
},
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_전국평균_2026-09-20.json",
"해시": "43cc223af95f634594c9ecfe1674b72eb5a39c394486343faa1235f56fcbc8de",
"역할": "primary(실내등유 전국평균 — 새로 받음)"
},
{
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_시도별_2026-09-20.json",
"해시": "634a26c4ad50cec7f97a379fce40d330d151fe32c077bf818a03caf5ce7f1881",
"역할": "primary(실내등유 시도별 — 새로 받음)"
},
{
"경로": "resources/knowledge/original/원가계산/전기요금_한국전력/20250101/별표1_월간전기요금표(C)_20250101.md",
"해시": "f3e0fa68b59a4d330d8128200099f1dba5b29cd10ec407918927145d07e6a8cf",
"역할": "primary(전력)"
}
],
"구분": {
"유류": {
"원문": "오피넷유가",
"기관": "한국석유공사(오피넷)",
"판": "휘발유·경유 2026-08-14/09-09 · 실내등유 2026-09-20",
"지식DB": "resources/knowledge/original/원가계산/유가_오피넷/"
},
"전력": {
"원문": "한전 전기요금표 별표1(C)",
"기관": "한국전력공사",
"판": "2025-01-01",
"지식DB": "resources/knowledge/original/원가계산/전기요금_한국전력/20250101/"
}
},
"비고": [
"시도별 유가 — 품셈 8-1-7 5호 「유류가격은 해당지역의 가격으로 한다」. 코드 00(전국)은 원문 그대로 두되 지역 선택지에서는 전국평균 판이 맡는다. ⚠ 원천이 시도를 17줄로 주는데 그 가름이 행정구역과 다르다 — 코드 20 이 「전남광주」 한 줄이고 07(전남)·16(광주)은 아예 없다. 원문 이름을 그대로 두고 우리가 쪼개지 않는다.",
"규격 = 기준일(유류: 수집일 · 전력: 시행일) · 구분 = 유류/전력 · 상세구분 = 유류(지역 이름)·전력(계약종별)",
"휘발유·경유는 옛 판(전국평균 2026-08-14 · 시도별 2026-09-09) 값 그대로 — 이번엔 실내등유만 새로 받음(로직 계산 결과가 갈리지 않게). 다음에 유류 전체를 갱신할 땐 이 셋을 한 수집일로 맞출 것.",
"전력비 계상 기준 조문 없음 — 계약예규 「예정가격작성기준」 §19③1·§34③1, 건설품셈 1-5-2호, 산림품셈 1-7-2호 모두 「전력비는 실비를 계상」만 정하고 특정 계약종별 지정 없음.",
"전력 — 별표1(C) 저압 위주 주요 계약종별(주택용·일반용(갑)Ⅰ·산업용(갑)Ⅰ·임시전력(갑))만 올림. 고압·을종·교육용·농사용·가로등 등 나머지 계약종별과 슈퍼유저요금·하계 특례는 md 원문(전기요금_한국전력/20250101/)만 참조."
],
"줄": [
{ "키": "MO000001", "원문번호": "휘발유:전국평균", "구분": "유류", "상세구분": "전국평균", "이름": "휘발유", "규격": "2026-08-14", "단위": "원/L", "값": 1863.25, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000002", "원문번호": "경유:전국평균", "구분": "유류", "상세구분": "전국평균", "이름": "자동차용경유", "규격": "2026-08-14", "단위": "원/L", "값": 1846.39, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000003", "원문번호": "휘발유:전국", "구분": "유류", "상세구분": "전국", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1858.93, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000004", "원문번호": "휘발유:서울", "구분": "유류", "상세구분": "서울", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1905.02, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000005", "원문번호": "휘발유:경기", "구분": "유류", "상세구분": "경기", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1855.78, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000006", "원문번호": "휘발유:강원", "구분": "유류", "상세구분": "강원", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1870.23, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000007", "원문번호": "휘발유:충북", "구분": "유류", "상세구분": "충북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1866.12, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000008", "원문번호": "휘발유:충남", "구분": "유류", "상세구분": "충남", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1864.78, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000009", "원문번호": "휘발유:전북", "구분": "유류", "상세구분": "전북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1859.7, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000010", "원문번호": "휘발유:경북", "구분": "유류", "상세구분": "경북", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1852.71, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000011", "원문번호": "휘발유:경남", "구분": "유류", "상세구분": "경남", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1854.71, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000012", "원문번호": "휘발유:부산", "구분": "유류", "상세구분": "부산", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1842.66, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000013", "원문번호": "휘발유:제주", "구분": "유류", "상세구분": "제주", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1889.27, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000014", "원문번호": "휘발유:대구", "구분": "유류", "상세구분": "대구", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1831.78, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000015", "원문번호": "휘발유:인천", "구분": "유류", "상세구분": "인천", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1845.64, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000016", "원문번호": "휘발유:대전", "구분": "유류", "상세구분": "대전", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1836.79, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000017", "원문번호": "휘발유:울산", "구분": "유류", "상세구분": "울산", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.49, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000018", "원문번호": "휘발유:세종", "구분": "유류", "상세구분": "세종", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1855.8, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000019", "원문번호": "휘발유:전남광주", "구분": "유류", "상세구분": "전남광주", "이름": "휘발유", "규격": "2026-09-09", "단위": "원/L", "값": 1862.28, "출처": "유가전력 오피넷유가 B027", "비고": null },
{ "키": "MO000020", "원문번호": "경유:전국", "구분": "유류", "상세구분": "전국", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1843.79, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000021", "원문번호": "경유:서울", "구분": "유류", "상세구분": "서울", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1886.15, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000022", "원문번호": "경유:경기", "구분": "유류", "상세구분": "경기", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.22, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000023", "원문번호": "경유:강원", "구분": "유류", "상세구분": "강원", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1859.9, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000024", "원문번호": "경유:충북", "구분": "유류", "상세구분": "충북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1851.55, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000025", "원문번호": "경유:충남", "구분": "유류", "상세구분": "충남", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1850.08, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000026", "원문번호": "경유:전북", "구분": "유류", "상세구분": "전북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1846.86, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000027", "원문번호": "경유:경북", "구분": "유류", "상세구분": "경북", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1838.1, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000028", "원문번호": "경유:경남", "구분": "유류", "상세구분": "경남", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1837.71, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000029", "원문번호": "경유:부산", "구분": "유류", "상세구분": "부산", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1825.55, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000030", "원문번호": "경유:제주", "구분": "유류", "상세구분": "제주", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1869.16, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000031", "원문번호": "경유:대구", "구분": "유류", "상세구분": "대구", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1815.72, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000032", "원문번호": "경유:인천", "구분": "유류", "상세구분": "인천", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1829.14, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000033", "원문번호": "경유:대전", "구분": "유류", "상세구분": "대전", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1824.58, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000034", "원문번호": "경유:울산", "구분": "유류", "상세구분": "울산", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1826.63, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000035", "원문번호": "경유:세종", "구분": "유류", "상세구분": "세종", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1841.72, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000036", "원문번호": "경유:전남광주", "구분": "유류", "상세구분": "전남광주", "이름": "자동차용경유", "규격": "2026-09-09", "단위": "원/L", "값": 1850.47, "출처": "유가전력 오피넷유가 D047", "비고": null },
{ "키": "MO000037", "원문번호": "실내등유:전국평균", "구분": "유류", "상세구분": "전국평균", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1575.11, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000038", "원문번호": "실내등유:전국", "구분": "유류", "상세구분": "전국", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1575.11, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000039", "원문번호": "실내등유:서울", "구분": "유류", "상세구분": "서울", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1678.98, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000040", "원문번호": "실내등유:경기", "구분": "유류", "상세구분": "경기", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1591.06, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000041", "원문번호": "실내등유:강원", "구분": "유류", "상세구분": "강원", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1557.59, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000042", "원문번호": "실내등유:충북", "구분": "유류", "상세구분": "충북", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1564.1, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000043", "원문번호": "실내등유:충남", "구분": "유류", "상세구분": "충남", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1564.67, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000044", "원문번호": "실내등유:전북", "구분": "유류", "상세구분": "전북", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1555.69, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000045", "원문번호": "실내등유:경북", "구분": "유류", "상세구분": "경북", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1566.54, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000046", "원문번호": "실내등유:경남", "구분": "유류", "상세구분": "경남", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1585.44, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000047", "원문번호": "실내등유:부산", "구분": "유류", "상세구분": "부산", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1623.28, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000048", "원문번호": "실내등유:제주", "구분": "유류", "상세구분": "제주", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1564.41, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000049", "원문번호": "실내등유:대구", "구분": "유류", "상세구분": "대구", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1595.72, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000050", "원문번호": "실내등유:인천", "구분": "유류", "상세구분": "인천", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1588.91, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000051", "원문번호": "실내등유:대전", "구분": "유류", "상세구분": "대전", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1586.64, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000052", "원문번호": "실내등유:울산", "구분": "유류", "상세구분": "울산", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1594.43, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000053", "원문번호": "실내등유:세종", "구분": "유류", "상세구분": "세종", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1536.15, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000054", "원문번호": "실내등유:전남광주", "구분": "유류", "상세구분": "전남광주", "이름": "실내등유", "규격": "2026-09-20", "단위": "원/L", "값": 1563.45, "출처": "유가전력 오피넷유가 C004", "비고": null },
{ "키": "MO000055", "원문번호": "주택용저압:기본_200이하", "구분": "전력", "상세구분": "주택용 저압", "이름": "기본요금(200kWh 이하)", "규격": "2025-01-01", "단위": "원/호", "값": 910, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000056", "원문번호": "주택용저압:기본_201~400", "구분": "전력", "상세구분": "주택용 저압", "이름": "기본요금(201~400kWh)", "규격": "2025-01-01", "단위": "원/호", "값": 1600, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000057", "원문번호": "주택용저압:기본_400초과", "구분": "전력", "상세구분": "주택용 저압", "이름": "기본요금(400kWh 초과)", "규격": "2025-01-01", "단위": "원/호", "값": 7300, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000058", "원문번호": "주택용저압:전력량_처음200", "구분": "전력", "상세구분": "주택용 저압", "이름": "전력량요금(처음 200kWh까지)", "규격": "2025-01-01", "단위": "원/kWh", "값": 120.0, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000059", "원문번호": "주택용저압:전력량_다음200", "구분": "전력", "상세구분": "주택용 저압", "이름": "전력량요금(다음 200kWh까지)", "규격": "2025-01-01", "단위": "원/kWh", "값": 214.6, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000060", "원문번호": "주택용저압:전력량_400초과", "구분": "전력", "상세구분": "주택용 저압", "이름": "전력량요금(400kWh 초과)", "규격": "2025-01-01", "단위": "원/kWh", "값": 307.3, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000061", "원문번호": "주택용저압:월간최저요금", "구분": "전력", "상세구분": "주택용 저압", "이름": "월간 최저요금", "규격": "2025-01-01", "단위": "원/월", "값": 1000, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000062", "원문번호": "일반용갑I저압:기본", "구분": "전력", "상세구분": "일반용(갑) 저압", "이름": "기본요금", "규격": "2025-01-01", "단위": "원/kW", "값": 6160, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000063", "원문번호": "일반용갑I저압:전력량_여름철", "구분": "전력", "상세구분": "일반용(갑) 저압", "이름": "전력량요금(여름철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 132.4, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000064", "원문번호": "일반용갑I저압:전력량_봄가을철", "구분": "전력", "상세구분": "일반용(갑) 저압", "이름": "전력량요금(봄·가을철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 91.9, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000065", "원문번호": "일반용갑I저압:전력량_겨울철", "구분": "전력", "상세구분": "일반용(갑) 저압", "이름": "전력량요금(겨울철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 119.0, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000066", "원문번호": "산업용갑I저압:기본", "구분": "전력", "상세구분": "산업용(갑) 저압", "이름": "기본요금", "규격": "2025-01-01", "단위": "원/kW", "값": 5550, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000067", "원문번호": "산업용갑I저압:전력량_여름철", "구분": "전력", "상세구분": "산업용(갑) 저압", "이름": "전력량요금(여름철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 107.7, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000068", "원문번호": "산업용갑I저압:전력량_봄가을철", "구분": "전력", "상세구분": "산업용(갑) 저압", "이름": "전력량요금(봄·가을철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 85.9, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000069", "원문번호": "산업용갑I저압:전력량_겨울철", "구분": "전력", "상세구분": "산업용(갑) 저압", "이름": "전력량요금(겨울철)", "규격": "2025-01-01", "단위": "원/kWh", "값": 106.0, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null },
{ "키": "MO000070", "원문번호": "임시전력갑:기본요금적용", "구분": "전력", "상세구분": "임시전력(갑)", "이름": "기본요금", "규격": "2025-01-01", "단위": "-", "값": null, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": "주택용 저압 요금 그대로 적용(원문 6.가.(1))" },
{ "키": "MO000071", "원문번호": "임시전력갑:전력량요금적용", "구분": "전력", "상세구분": "임시전력(갑)", "이름": "전력량요금", "규격": "2025-01-01", "단위": "-", "값": null, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": "주택용 저압 요금 그대로 적용(원문 6.가.(2))" },
{ "키": "MO000072", "원문번호": "임시전력갑:월간최저요금", "구분": "전력", "상세구분": "임시전력(갑)", "이름": "월간 최저요금", "규격": "2025-01-01", "단위": "원/월", "값": 1000, "출처": "유가전력 한전 전기요금표 2025-01-01", "비고": null }
]
}