1.6 KiB
1.6 KiB
Countries table (ISO 3166 + names, populations, currencies, languages, flags)
Lane: Extract — data extraction and tables. Date: 2026-11-03
Artifact
- countries.csv — flat table, 250 rows + header, 14 columns.
- extract_countries.py — raw source JSON → countries.csv transform.
- verify_extraction.py — independent CSV-vs-source cross-check (evidence).
- check_countries.py — structural verifier; the CHECK gate (exit 0/1).
- source_countriesV3.1.json — raw source dataset (SHA-256 in provenance).
Source
- Raw data: https://raw.githubusercontent.com/restcountries/restcountries/master/src/main/resources/countriesV3.1.json
- REST Countries repository file
src/main/resources/countriesV3.1.json: an array of 250 country records. It is the exact dataset behind the (deprecated)/v3.1API.
Method
extract_countries.pyreads the JSON array and flattens every record to one CSV row on a fixed 14-column contract. No field contains a comma, so the file is trivially parseable with any CSV reader.
Verification
verify_extraction.pyvs the raw source: PASS (rows=250 codes=250 source=250).check_countries.pystructural gate: exit 0 (the CHECK line in the final report; 0 = correct, nonzero = wrong).
Columns (in order)
name_common | name_official | alpha2 | alpha3 | numeric | region | subregion | capital | population | area_km2 | currencies | languages | tlds | flag
Provenance
- SHA-256 of
source_countriesV3.1.json: (filled after the run) - Source record count: 250 (distinct ISO 3166-1 alpha-2 codes).