ชุดข้อมูล จังหวัด (Province), อำเภอ (District), ตำบล (Sub-district) ของประเทศไทย
รองรับหลายรูปแบบ (CSV, JSON, SQL, XLSX, XML) และมี API JSON ให้เรียกใช้งานได้ทันที
📌 ตั้งแต่ v2 มีการเปลี่ยนโครงสร้างและการตั้งชื่อ ดูรายละเอียดที่ CHANGELOG.md
- โครงสร้างโปรเจกต์
- รูปแบบข้อมูลและสคีมา
- ไฟล์ API พร้อมใช้งาน
- การใช้งานแบบรวดเร็ว
- การใช้งานด้วยโค้ด
- สคริปต์ & Automation
- Diagram
- Contributing
- Documentation
- Changelogs
- License
├── api
│ ├── latest
│ │ ├── district.json
│ │ ├── province_with_district_and_sub_district.json
│ │ ├── province.json
│ │ ├── sub_district_with_district_and_province.json
│ │ └── sub_district.json
│ └── v1
│ ├── amphure.json
│ ├── province_with_amphure_tambon.json
│ ├── province.json
│ └── tambon.json
├── data
│ ├── raw/ # ข้อมูลต้นฉบับ
│ └── spec/ # JSON Schema สำหรับ validate
├── docs # diagram, schema, readme
├── formats # export ไฟล์ csv/json/sql/xlsx/xml
├── scripts # pipeline สคริปต์ (validate, export, api)
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
└── README.md
Highlights v2
amphure→district,tambon→sub_district- ลบ prefix
thai_ในชื่อ dataset - เพิ่ม spec schema ใน
data/spec/*.json - pipeline รันง่ายด้วย
scripts/make.py
- geography.json →
id,name - province.json →
id,name_th,name_en,geography_id, timestamps - district.json →
id,name_th,name_en,province_id, timestamps - sub_district.json →
id,zip_code,name_th,name_en,district_id,lat,long, timestamps
ข้อมูลต้นทางอยู่ใน data/raw/*.json → export ได้หลายไฟล์ใน formats/*
API endpoints ใช้ไฟล์ใน api/latest สามารถเรียกใช้งานตรงจาก GitHub Raw:
-
province.jsonhttps://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json -
district.jsonhttps://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/district.json -
sub_district.jsonhttps://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/sub_district.json -
province_with_district_and_sub_district.jsonhttps://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province_with_district_and_sub_district.json -
sub_district_with_district_and_province.jsonhttps://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/sub_district_with_district_and_province.json
ตัวอย่าง Raw URL
# ดูจังหวัดแรก ๆ
curl -s https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json | jq '.[0:3]'ตัวอย่างการใช้งาน API api/latest/province_with_district_and_sub_district.json เพื่อสร้าง DropdownList
https://codesandbox.io/p/sandbox/thailand-province-demo-api-k3st7
import requests
url = "https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json"
provinces = requests.get(url).json()
print(provinces[0])
# {'id': 1, 'name_th': 'กรุงเทพมหานคร', 'name_en': 'Bangkok', 'geography_id': 2, ...}import fetch from "node-fetch";
const url = "https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/district.json";
const res = await fetch(url);
const districts = await res.json();
console.log(districts[0]);
// { id: 1001, name_th: 'เขตพระนคร', name_en: 'Khet Phra Nakhon', province_id: 1, ... }scripts/0_validate_data.py→ validate schema + FK + formatscripts/1_export_file_format.py --overwrite→ export CSV/JSON/SQL/XLSX/XMLscripts/2_export_api.py --overwrite→ build API JSONscripts/make.py→ pipeline รวมทุกขั้นตอน
อ่านรายละเอียดเพิ่มเติม scripts/readme.md
ดูแผนภาพ ERD ที่ docs/diagram.md ตัวอย่าง Mermaid:
erDiagram
GEOGRAPHIES ||--o{ PROVINCES : "1..*"
PROVINCES ||--o{ DISTRICTS : "1..*"
DISTRICTS ||--o{ SUB_DISTRICTS : "1..*"
- ยินดีรับ PR ทั้งแก้ไขข้อมูล เพิ่ม dataset ปรับ docs หรือเพิ่ม export format
- โปรดอ่าน CONTRIBUTING.md ก่อนส่ง PR
Documentation เอกสารประกอบสำหรับการใช้งานและการพัฒนาโปรเจกต์ thai-province-data docs/readme.md
โปรเจกต์นี้มีการอัปเดตและปรับปรุงอย่างต่อเนื่อง
สามารถติดตามรายละเอียดการเปลี่ยนแปลงทั้งหมดได้ที่ CHANGELOG.md
For more details, please see the CHANGELOG.md
MIT License © 2025 Kongvut Sangkla