diff --git a/.gitignore b/.gitignore index 93fabeac..9490abd6 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,9 @@ storage # generated zip archive *.zip + +# DuckDB database files +*.db + +# Plan documents +docs/plans/ diff --git a/CLAUDE.md b/CLAUDE.md index 056553a4..fb6d4598 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,6 +9,8 @@ Football (soccer) dataset built from transfermarkt.com data. Raw data is acquire - `data/raw/transfermarkt-scraper/` - raw JSON data from the scraper - `data/raw/transfermarkt-api/` - raw JSON data from the API - `data/prep/` - prepared dataset CSV files (gzipped) +- `data/competitions.json` - generated list of competitions (overwritten on every `acquire_local --asset competitions` run) +- `data/supplemental_competitions.json` - hand-crafted competition records merged into `data/competitions.json` on each run; use this for competitions that don't appear in Transfermarkt's confederation hierarchy (e.g. play-offs); see [docs/developer-guide.md](docs/developer-guide.md) for details - `dbt/` - dbt project root (models, profiles, packages) - `dbt/models/base/` - base models that parse raw JSON into tables (one per source) - `dbt/models/curated/` - curated models that join/transform base models into final datasets diff --git a/config.yml b/config.yml index 63050c60..2d47b4f6 100644 --- a/config.yml +++ b/config.yml @@ -1,6 +1,9 @@ defintions: seasons: [2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025] competition_ids: + # Allowlist for acquisition. Competitions not in Transfermarkt's confederation hierarchy + # (e.g. play-offs) won't be scraped by tfmkt competitions even if listed here — + # add those to data/supplemental_competitions.json instead. # European first-tier leagues - L1 # Germany - Bundesliga - ES1 # Spain - LaLiga @@ -10,6 +13,9 @@ defintions: - NL1 # Netherlands - Eredivisie - PO1 # Portugal - Liga Portugal - BE1 # Belgium - Jupiler Pro League + - EJPL # Belgium - Jupiler Pro League Champions' Play-Offs + - POBE # Belgium - Jupiler Pro League Europe Play-Offs + - BPO4 # Belgium - Jupiler Pro League Relegation Play-offs - TR1 # Turkey - Super Lig - GR1 # Greece - Super League 1 - SC1 # Scotland - Scottish Premiership diff --git a/data/competitions.json b/data/competitions.json index 3ef42a7a..99539ad9 100644 --- a/data/competitions.json +++ b/data/competitions.json @@ -1,67 +1,65 @@ +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/fifa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/fifa"}, "competition_name": "World Cup", "href": "/world-cup/startseite/pokalwettbewerb/FIWC", "competition_type": "world_cup"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "competition_name": "Africa Cup of Nations", "href": "/africa-cup-of-nations/startseite/pokalwettbewerb/AFCN", "competition_type": "africa_cup_of_nations"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "competition_name": "Copa Am\u00e9rica", "href": "/copa-america/startseite/pokalwettbewerb/COPA", "competition_type": "copa_america"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Champions League", "href": "/uefa-champions-league/startseite/pokalwettbewerb/CL", "competition_type": "uefa_champions_league"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Super Cup", "href": "/uefa-super-cup/startseite/pokalwettbewerb/USC", "competition_type": "uefa_super_cup"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Europa League", "href": "/uefa-europa-league/startseite/pokalwettbewerb/EL", "competition_type": "uefa_europa_league"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Conference League", "href": "/uefa-conference-league/startseite/pokalwettbewerb/UCOL", "competition_type": "uefa_conference_league"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Europa League Qualifying", "href": "/uefa-europa-league-qualifying/startseite/pokalwettbewerb/ELQ", "competition_type": "uefa_europa_league_qualifying"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Champions League Qualifying", "href": "/uefa-champions-league-qualifying/startseite/pokalwettbewerb/CLQ", "competition_type": "uefa_champions_league_qualifying"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Conference League Qualifiers", "href": "/uefa-conference-league-qualifiers/startseite/pokalwettbewerb/ECLQ", "competition_type": "uefa_conference_league_qualifiers"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Conference League Qualifying", "href": "/uefa-conference-league-qualifying/startseite/pokalwettbewerb/ECLQ", "competition_type": "uefa_conference_league_qualifying"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "competition_name": "UEFA Euro", "href": "/uefa-euro/startseite/pokalwettbewerb/EURO", "competition_type": "uefa_euro"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/fifa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/fifa"}, "competition_name": "World Cup", "href": "/world-cup/startseite/pokalwettbewerb/FIWC", "competition_type": "world_cup"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "competition_name": "Africa Cup of Nations", "href": "/africa-cup-of-nations/startseite/pokalwettbewerb/AFCN", "competition_type": "africa_cup_of_nations"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "518", "average_age": "27.3", "foreigner_percentage": "43.8 %", "average_market_value": null, "total_value": "\u20ac5.62bn", "competition_type": "first_tier", "competition_name": "LaLiga", "href": "/laliga/startseite/wettbewerb/ES1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "518", "average_age": "27.3", "foreigner_percentage": "43.8 %", "average_market_value": null, "total_value": "\u20ac5.62bn", "competition_type": "domestic_cup", "competition_name": "Copa del Rey", "href": "/copa-del-rey/startseite/wettbewerb/CDR"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "518", "average_age": "27.3", "foreigner_percentage": "43.8 %", "average_market_value": null, "total_value": "\u20ac5.62bn", "competition_type": "domestic_super_cup", "competition_name": "Supercopa", "href": "/supercopa/startseite/wettbewerb/SUC"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "528", "average_age": "26.4", "foreigner_percentage": "72.2 %", "average_market_value": null, "total_value": "\u20ac12.58bn", "competition_type": "first_tier", "competition_name": "Premier League", "href": "/premier-league/startseite/wettbewerb/GB1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "528", "average_age": "26.4", "foreigner_percentage": "72.2 %", "average_market_value": null, "total_value": "\u20ac12.58bn", "competition_type": "domestic_cup", "competition_name": "FA Cup", "href": "/fa-cup/startseite/wettbewerb/FAC"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "528", "average_age": "26.4", "foreigner_percentage": "72.2 %", "average_market_value": null, "total_value": "\u20ac12.58bn", "competition_type": "domestic_super_cup", "competition_name": "Community Shield", "href": "/community-shield/startseite/wettbewerb/GBCS"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "534", "average_age": "26.7", "foreigner_percentage": "68.5 %", "average_market_value": null, "total_value": "\u20ac5.33bn", "competition_type": "first_tier", "competition_name": "Serie A", "href": "/serie-a/startseite/wettbewerb/IT1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "534", "average_age": "26.7", "foreigner_percentage": "68.5 %", "average_market_value": null, "total_value": "\u20ac5.33bn", "competition_type": "domestic_cup", "competition_name": "Italy Cup", "href": "/italy-cup/startseite/wettbewerb/CIT"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "534", "average_age": "26.7", "foreigner_percentage": "68.5 %", "average_market_value": null, "total_value": "\u20ac5.33bn", "competition_type": "domestic_super_cup", "competition_name": "Supercoppa Italiana", "href": "/supercoppa-italiana/startseite/wettbewerb/SCI"} {"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "competition_name": "AFC Asian Cup", "href": "/afc-asian-cup/startseite/pokalwettbewerb/AFAC", "competition_type": "afc_asian_cup"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "477", "average_age": "25.6", "foreigner_percentage": "62.1 %", "average_market_value": null, "total_value": "\u20ac4.38bn", "competition_type": "first_tier", "competition_name": "Ligue 1", "href": "/ligue-1/startseite/wettbewerb/FR1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "477", "average_age": "25.6", "foreigner_percentage": "62.1 %", "average_market_value": null, "total_value": "\u20ac4.38bn", "competition_type": "domestic_super_cup", "competition_name": "Troph\u00e9e des Champions", "href": "/trophee-des-champions/startseite/wettbewerb/FRCH"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "174", "country_name": "T\u00fcrkiye", "country_code": "TR1", "total_clubs": "18", "total_players": "512", "average_age": "26.5", "foreigner_percentage": "52.5 %", "average_market_value": null, "total_value": "\u20ac1.37bn", "competition_type": "first_tier", "competition_name": "S\u00fcper Lig", "href": "/super-lig/startseite/wettbewerb/TR1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "487", "average_age": "25.6", "foreigner_percentage": "71.3 %", "average_market_value": null, "total_value": "\u20ac1.86bn", "competition_type": "first_tier", "competition_name": "Liga Portugal", "href": "/liga-portugal/startseite/wettbewerb/PO1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "487", "average_age": "25.6", "foreigner_percentage": "71.3 %", "average_market_value": null, "total_value": "\u20ac1.86bn", "competition_type": "domestic_super_cup", "competition_name": "Superta\u00e7a", "href": "/supertaca-candido-de-oliveira/startseite/wettbewerb/POSU"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "448", "average_age": "25.9", "foreigner_percentage": "38.6 %", "average_market_value": "\n", "total_value": "\u20ac1.05bn", "competition_type": "first_tier", "competition_name": "Premier Liga", "href": "/premier-liga/startseite/wettbewerb/RU1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "448", "average_age": "25.9", "foreigner_percentage": "38.6 %", "average_market_value": "\n", "total_value": "\u20ac1.05bn", "competition_type": "domestic_cup", "competition_name": "Russian Cup", "href": "/russian-cup/startseite/wettbewerb/RUP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "448", "average_age": "25.9", "foreigner_percentage": "38.6 %", "average_market_value": "\n", "total_value": "\u20ac1.05bn", "competition_type": "domestic_super_cup", "competition_name": "Russian Super Cup", "href": "/russian-super-cup/startseite/wettbewerb/RUSS"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "competition_name": "Copa Am\u00e9rica", "href": "/copa-america/startseite/pokalwettbewerb/COPA", "competition_type": "copa_america"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "172", "country_name": "Czech Republic", "country_code": "TS1", "total_clubs": "16", "total_players": "469", "average_age": "25.8", "foreigner_percentage": "40.5 %", "average_market_value": null, "total_value": "\u20ac414.18m", "competition_type": "first_tier", "competition_name": "Chance Liga", "href": "/chance-liga/startseite/wettbewerb/TS1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "436", "average_age": "27.1", "foreigner_percentage": "57.3 %", "average_market_value": "\n", "total_value": "\u20ac538.93m", "competition_type": "first_tier", "competition_name": "Super League 1", "href": "/super-league-1/startseite/wettbewerb/GR1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "436", "average_age": "27.1", "foreigner_percentage": "57.3 %", "average_market_value": "\n", "total_value": "\u20ac538.93m", "competition_type": "domestic_cup", "competition_name": "Kypello Elladas", "href": "/kypello-elladas/startseite/wettbewerb/GRP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "452", "average_age": "24.5", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.05bn", "competition_type": "first_tier", "competition_name": "Jupiler Pro League", "href": "/jupiler-pro-league/startseite/wettbewerb/BE1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "452", "average_age": "24.5", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.05bn", "competition_type": "domestic_super_cup", "competition_name": "Volkswagen Supercup", "href": "/volkswagen-supercup/startseite/wettbewerb/BESC"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "436", "average_age": "25.3", "foreigner_percentage": "28.7 %", "average_market_value": null, "total_value": "\u20ac424.88m", "competition_type": "first_tier", "competition_name": "Premier Liga", "href": "/premier-liga/startseite/wettbewerb/UKR1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "436", "average_age": "25.3", "foreigner_percentage": "28.7 %", "average_market_value": null, "total_value": "\u20ac424.88m", "competition_type": "domestic_cup", "competition_name": "Ukrainian Cup", "href": "/ukrainian-cup/startseite/wettbewerb/UKRP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "497", "average_age": "25.2", "foreigner_percentage": "49.1 %", "average_market_value": null, "total_value": "\u20ac1.31bn", "competition_type": "first_tier", "competition_name": "Eredivisie", "href": "/eredivisie/startseite/wettbewerb/NL1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "497", "average_age": "25.2", "foreigner_percentage": "49.1 %", "average_market_value": null, "total_value": "\u20ac1.31bn", "competition_type": "domestic_cup", "competition_name": "KNVB Beker", "href": "/knvb-beker/startseite/wettbewerb/NLP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "497", "average_age": "25.2", "foreigner_percentage": "49.1 %", "average_market_value": null, "total_value": "\u20ac1.31bn", "competition_type": "domestic_super_cup", "competition_name": "Johan Cruijff Schaal", "href": "/johan-cruijff-schaal/startseite/wettbewerb/NLSC"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "319", "average_age": "25.1", "foreigner_percentage": "47.6 %", "average_market_value": null, "total_value": "\u20ac411.18m", "competition_type": "first_tier", "competition_name": "Superliga", "href": "/superliga/startseite/wettbewerb/DK1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "319", "average_age": "25.1", "foreigner_percentage": "47.6 %", "average_market_value": null, "total_value": "\u20ac411.18m", "competition_type": "domestic_cup", "competition_name": "Oddset Pokalen", "href": "/oddset-pokalen/startseite/wettbewerb/DKP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "326", "average_age": "26.7", "foreigner_percentage": "65.3 %", "average_market_value": "\n", "total_value": "\u20ac396.17m", "competition_type": "first_tier", "competition_name": "Premiership", "href": "/scottish-premiership/startseite/wettbewerb/SC1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "326", "average_age": "26.7", "foreigner_percentage": "65.3 %", "average_market_value": "\n", "total_value": "\u20ac396.17m", "competition_type": "domestic_cup", "competition_name": "SFA Cup", "href": "/scottish-fa-cup/startseite/wettbewerb/SFA"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "135", "country_name": "Poland", "country_code": "PL1", "total_clubs": "18", "total_players": "515", "average_age": "25.9", "foreigner_percentage": "49.1 %", "average_market_value": "\n", "total_value": "\u20ac388.88m", "competition_type": "first_tier", "competition_name": "Ekstraklasa", "href": "/pko-bp-ekstraklasa/startseite/wettbewerb/PL1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "125", "country_name": "Norway", "country_code": "NO1", "total_clubs": "16", "total_players": "412", "average_age": "25.0", "foreigner_percentage": "32.3 %", "average_market_value": "\n", "total_value": "\u20ac333.75m", "competition_type": "first_tier", "competition_name": "Eliteserien", "href": "/eliteserien/startseite/wettbewerb/NO1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "140", "country_name": "Romania", "country_code": "RO1", "total_clubs": "16", "total_players": "476", "average_age": "26.6", "foreigner_percentage": "40.3 %", "average_market_value": null, "total_value": "\u20ac239.98m", "competition_type": "first_tier", "competition_name": "SuperLiga", "href": "/superliga/startseite/wettbewerb/RO1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "215", "country_name": "Serbia", "country_code": "SER1", "total_clubs": "16", "total_players": "476", "average_age": "25.0", "foreigner_percentage": "33.6 %", "average_market_value": null, "total_value": "\u20ac315.58m", "competition_type": "first_tier", "competition_name": "Super liga Srbije", "href": "/super-liga-srbije/startseite/wettbewerb/SER1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "517", "average_age": "25.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.02bn", "competition_type": "first_tier", "competition_name": "Bundesliga", "href": "/bundesliga/startseite/wettbewerb/L1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "517", "average_age": "25.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.02bn", "competition_type": "domestic_cup", "competition_name": "DFB-Pokal", "href": "/dfb-pokal/startseite/wettbewerb/DFB"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "517", "average_age": "25.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.02bn", "competition_type": "domestic_super_cup", "competition_name": "DFL-Supercup", "href": "/franz-beckenbauer-supercup/startseite/wettbewerb/DFL"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "127", "country_name": "Austria", "country_code": "A1", "total_clubs": "12", "total_players": "343", "average_age": "24.9", "foreigner_percentage": "43.7 %", "average_market_value": null, "total_value": "\u20ac359.16m", "competition_type": "first_tier", "competition_name": "Bundesliga", "href": "/bundesliga/startseite/wettbewerb/A1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "37", "country_name": "Croatia", "country_code": "KR1", "total_clubs": "10", "total_players": "298", "average_age": "25.5", "foreigner_percentage": "41.3 %", "average_market_value": "\n", "total_value": "\u20ac202.58m", "competition_type": "first_tier", "competition_name": "SuperSport HNL", "href": "/supersport-hnl/startseite/wettbewerb/KR1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "147", "country_name": "Sweden", "country_code": "SE1", "total_clubs": "16", "total_players": "431", "average_age": "24.7", "foreigner_percentage": "39.2 %", "average_market_value": "\n", "total_value": "\u20ac234.69m", "competition_type": "first_tier", "competition_name": "Allsvenskan", "href": "/allsvenskan/startseite/wettbewerb/SE1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "148", "country_name": "Switzerland", "country_code": "C1", "total_clubs": "12", "total_players": "339", "average_age": "25.1", "foreigner_percentage": "53.1 %", "average_market_value": "\n", "total_value": "\u20ac384.18m", "competition_type": "first_tier", "competition_name": "Super League", "href": "/super-league/startseite/wettbewerb/C1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "146", "country_name": "Saudi Arabia", "country_code": "SA1", "total_clubs": "18", "total_players": "503", "average_age": "27.0", "foreigner_percentage": "39.4 %", "average_market_value": null, "total_value": "\u20ac1.11bn", "competition_type": "first_tier", "competition_name": "Saudi Pro League", "href": "/saudi-pro-league/startseite/wettbewerb/SA1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "12", "country_name": "Australia", "country_code": "AUS1", "total_clubs": "12", "total_players": "378", "average_age": "24.8", "foreigner_percentage": "32.0 %", "average_market_value": null, "total_value": "\u20ac105.50m", "competition_type": "first_tier", "competition_name": "A-League Men", "href": "/a-league-men/startseite/wettbewerb/AUS1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "87", "country_name": "Korea, South", "country_code": "RSK1", "total_clubs": "12", "total_players": "429", "average_age": "26.2", "foreigner_percentage": "13.5 %", "average_market_value": null, "total_value": "\u20ac122.65m", "competition_type": "first_tier", "competition_name": "K League 1", "href": "/k-league-1/startseite/wettbewerb/RSK1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "77", "country_name": "Japan", "country_code": "JAP1", "total_clubs": "20", "total_players": "695", "average_age": "26.8", "foreigner_percentage": "12.9 %", "average_market_value": "\n", "total_value": "\u20ac310.83m", "competition_type": "first_tier", "competition_name": "J1 League", "href": "/j1-league/startseite/wettbewerb/JAP1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "184", "country_name": "United States", "country_code": "MLS1", "total_clubs": "30", "total_players": "852", "average_age": "25.5", "foreigner_percentage": "59.2 %", "average_market_value": "\n", "total_value": "\u20ac1.37bn", "competition_type": "first_tier", "competition_name": "MLS", "href": "/major-league-soccer/startseite/wettbewerb/MLS1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "110", "country_name": "Mexico", "country_code": "MEX1", "total_clubs": "18", "total_players": "482", "average_age": "26.9", "foreigner_percentage": "35.7 %", "average_market_value": "\n", "total_value": "\u20ac930.65m", "competition_type": "first_tier", "competition_name": "Liga MX Clausura", "href": "/liga-mx-clausura/startseite/wettbewerb/MEX1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "26", "country_name": "Brazil", "country_code": "BRA1", "total_clubs": "20", "total_players": "670", "average_age": "27.1", "foreigner_percentage": "23.7 %", "average_market_value": null, "total_value": "\u20ac1.94bn", "competition_type": "first_tier", "competition_name": "S\u00e9rie A", "href": "/campeonato-brasileiro-serie-a/startseite/wettbewerb/BRA1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "9", "country_name": "Argentina", "country_code": "ARG1", "total_clubs": "30", "total_players": "913", "average_age": "26.8", "foreigner_percentage": "16.4 %", "average_market_value": null, "total_value": "\u20ac966.25m", "competition_type": "first_tier", "competition_name": "Torneo Apertura ", "href": "/torneo-apertura/startseite/wettbewerb/ARG1"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "competition_type": "league_cup", "href": "/efl-cup/startseite/wettbewerb/CGB"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "83", "country_name": "Colombia", "country_code": "COL1", "competition_type": "first_tier", "href": "/liga-betplay-dimayor/startseite/wettbewerb/COL1", "total_clubs": "20"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "href": "/fifa-klub-wm/startseite/pokalwettbewerb/KLUB", "competition_type": "fifa_club_world_cup"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "competition_type": "domestic_cup", "href": "/allianz-cup/startseite/wettbewerb/POCP"} -{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "competition_type": "domestic_super_cup", "href": "/ukrainian-super-cup/startseite/wettbewerb/UKRS"} \ No newline at end of file +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "184", "country_name": "United States", "country_code": "MLS1", "total_clubs": "30", "total_players": "858", "average_age": "25.7", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac1.40bn", "competition_type": "first_tier", "competition_name": "MLS", "href": "/major-league-soccer/startseite/wettbewerb/MLS1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "110", "country_name": "Mexico", "country_code": "MEX1", "total_clubs": "18", "total_players": "475", "average_age": "27.0", "foreigner_percentage": "35.2 %", "average_market_value": "\n", "total_value": "\u20ac960.55m", "competition_type": "first_tier", "competition_name": "Liga MX Clausura", "href": "/liga-mx-clausura/startseite/wettbewerb/MEX1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "9", "country_name": "Argentina", "country_code": "ARG1", "total_clubs": "30", "total_players": "922", "average_age": "26.9", "foreigner_percentage": "16.2 %", "average_market_value": null, "total_value": "\u20ac1.00bn", "competition_type": "first_tier", "competition_name": "Torneo Apertura ", "href": "/torneo-apertura/startseite/wettbewerb/ARG1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "26", "country_name": "Brazil", "country_code": "BRA1", "total_clubs": "20", "total_players": "664", "average_age": "27.3", "foreigner_percentage": "23.8 %", "average_market_value": null, "total_value": "\u20ac2.02bn", "competition_type": "first_tier", "competition_name": "S\u00e9rie A", "href": "/campeonato-brasileiro-serie-a/startseite/wettbewerb/BRA1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "522", "average_age": "27.5", "foreigner_percentage": "43.7 %", "average_market_value": null, "total_value": "\u20ac5.44bn", "competition_type": "first_tier", "competition_name": "LaLiga", "href": "/laliga/startseite/wettbewerb/ES1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "522", "average_age": "27.5", "foreigner_percentage": "43.7 %", "average_market_value": null, "total_value": "\u20ac5.44bn", "competition_type": "domestic_cup", "competition_name": "Copa del Rey", "href": "/copa-del-rey/startseite/wettbewerb/CDR"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "522", "average_age": "27.5", "foreigner_percentage": "43.7 %", "average_market_value": null, "total_value": "\u20ac5.44bn", "competition_type": "domestic_super_cup", "competition_name": "Supercopa", "href": "/supercopa/startseite/wettbewerb/SUC"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "515", "average_age": "26.1", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.13bn", "competition_type": "first_tier", "competition_name": "Bundesliga", "href": "/bundesliga/startseite/wettbewerb/L1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "515", "average_age": "26.1", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.13bn", "competition_type": "domestic_cup", "competition_name": "DFB-Pokal", "href": "/dfb-pokal/startseite/wettbewerb/DFB"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "515", "average_age": "26.1", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.13bn", "competition_type": "domestic_super_cup", "competition_name": "DFL-Supercup", "href": "/franz-beckenbauer-supercup/startseite/wettbewerb/DFL"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "481", "average_age": "25.8", "foreigner_percentage": "63.2 %", "average_market_value": null, "total_value": "\u20ac4.70bn", "competition_type": "first_tier", "competition_name": "Ligue 1", "href": "/ligue-1/startseite/wettbewerb/FR1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "481", "average_age": "25.8", "foreigner_percentage": "63.2 %", "average_market_value": null, "total_value": "\u20ac4.70bn", "competition_type": "domestic_super_cup", "competition_name": "Troph\u00e9e des Champions", "href": "/trophee-des-champions/startseite/wettbewerb/FRCH"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "536", "average_age": "26.9", "foreigner_percentage": "68.7 %", "average_market_value": null, "total_value": "\u20ac5.28bn", "competition_type": "first_tier", "competition_name": "Serie A", "href": "/serie-a/startseite/wettbewerb/IT1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "536", "average_age": "26.9", "foreigner_percentage": "68.7 %", "average_market_value": null, "total_value": "\u20ac5.28bn", "competition_type": "domestic_cup", "competition_name": "Italy Cup", "href": "/italy-cup/startseite/wettbewerb/CIT"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "536", "average_age": "26.9", "foreigner_percentage": "68.7 %", "average_market_value": null, "total_value": "\u20ac5.28bn", "competition_type": "domestic_super_cup", "competition_name": "Supercoppa Italiana", "href": "/supercoppa-italiana/startseite/wettbewerb/SCI"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "174", "country_name": "T\u00fcrkiye", "country_code": "TR1", "total_clubs": "18", "total_players": "512", "average_age": "26.7", "foreigner_percentage": "52.0 %", "average_market_value": null, "total_value": "\u20ac1.38bn", "competition_type": "first_tier", "competition_name": "S\u00fcper Lig", "href": "/super-lig/startseite/wettbewerb/TR1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "555", "average_age": "26.5", "foreigner_percentage": "70.6 %", "average_market_value": null, "total_value": "\u20ac12.47bn", "competition_type": "first_tier", "competition_name": "Premier League", "href": "/premier-league/startseite/wettbewerb/GB1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "555", "average_age": "26.5", "foreigner_percentage": "70.6 %", "average_market_value": null, "total_value": "\u20ac12.47bn", "competition_type": "domestic_cup", "competition_name": "FA Cup", "href": "/fa-cup/startseite/wettbewerb/FAC"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "555", "average_age": "26.5", "foreigner_percentage": "70.6 %", "average_market_value": null, "total_value": "\u20ac12.47bn", "competition_type": "domestic_super_cup", "competition_name": "Community Shield", "href": "/community-shield/startseite/wettbewerb/GBCS"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "491", "average_age": "25.7", "foreigner_percentage": "70.1 %", "average_market_value": null, "total_value": "\u20ac2.03bn", "competition_type": "first_tier", "competition_name": "Liga Portugal", "href": "/liga-portugal/startseite/wettbewerb/PO1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "491", "average_age": "25.7", "foreigner_percentage": "70.1 %", "average_market_value": null, "total_value": "\u20ac2.03bn", "competition_type": "domestic_super_cup", "competition_name": "Portuguese Supercup", "href": "/supercup-candido-de-oliveira/startseite/wettbewerb/POSU"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "498", "average_age": "25.4", "foreigner_percentage": "48.4 %", "average_market_value": null, "total_value": "\u20ac1.38bn", "competition_type": "first_tier", "competition_name": "Eredivisie", "href": "/eredivisie/startseite/wettbewerb/NL1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "498", "average_age": "25.4", "foreigner_percentage": "48.4 %", "average_market_value": null, "total_value": "\u20ac1.38bn", "competition_type": "domestic_cup", "competition_name": "KNVB Beker", "href": "/knvb-beker/startseite/wettbewerb/NLP"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "498", "average_age": "25.4", "foreigner_percentage": "48.4 %", "average_market_value": null, "total_value": "\u20ac1.38bn", "competition_type": "domestic_super_cup", "competition_name": "Johan Cruijff Schaal", "href": "/johan-cruijff-schaal/startseite/wettbewerb/NLSC"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "450", "average_age": "26.1", "foreigner_percentage": "38.4 %", "average_market_value": "\n", "total_value": "\u20ac1.04bn", "competition_type": "first_tier", "competition_name": "Premier Liga", "href": "/premier-liga/startseite/wettbewerb/RU1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "450", "average_age": "26.1", "foreigner_percentage": "38.4 %", "average_market_value": "\n", "total_value": "\u20ac1.04bn", "competition_type": "domestic_cup", "competition_name": "Russian Cup", "href": "/russian-cup/startseite/wettbewerb/RUP"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "450", "average_age": "26.1", "foreigner_percentage": "38.4 %", "average_market_value": "\n", "total_value": "\u20ac1.04bn", "competition_type": "domestic_super_cup", "competition_name": "Russian Super Cup", "href": "/russian-super-cup/startseite/wettbewerb/RUSS"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "172", "country_name": "Czech Republic", "country_code": "TS1", "total_clubs": "16", "total_players": "461", "average_age": "26.0", "foreigner_percentage": "40.3 %", "average_market_value": null, "total_value": "\u20ac417.49m", "competition_type": "first_tier", "competition_name": "Chance Liga", "href": "/chance-liga/startseite/wettbewerb/TS1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "135", "country_name": "Poland", "country_code": "PL1", "total_clubs": "18", "total_players": "523", "average_age": "26.0", "foreigner_percentage": "48.4 %", "average_market_value": "\n", "total_value": "\u20ac398.73m", "competition_type": "first_tier", "competition_name": "Ekstraklasa", "href": "/pko-bp-ekstraklasa/startseite/wettbewerb/PL1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "444", "average_age": "25.5", "foreigner_percentage": "28.4 %", "average_market_value": null, "total_value": "\u20ac450.73m", "competition_type": "first_tier", "competition_name": "Premier Liga", "href": "/premier-liga/startseite/wettbewerb/UKR1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "444", "average_age": "25.5", "foreigner_percentage": "28.4 %", "average_market_value": null, "total_value": "\u20ac450.73m", "competition_type": "domestic_cup", "competition_name": "Ukrainian Cup", "href": "/ukrainian-cup/startseite/wettbewerb/UKRP"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "454", "average_age": "24.7", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.13bn", "competition_type": "first_tier", "competition_name": "Jupiler Pro League", "href": "/jupiler-pro-league/startseite/wettbewerb/BE1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "454", "average_age": "24.7", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.13bn", "competition_type": "domestic_super_cup", "competition_name": "Volkswagen Supercup", "href": "/volkswagen-supercup/startseite/wettbewerb/BESC"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "339", "average_age": "26.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac401.78m", "competition_type": "first_tier", "competition_name": "Premiership", "href": "/scottish-premiership/startseite/wettbewerb/SC1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "339", "average_age": "26.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac401.78m", "competition_type": "domestic_cup", "competition_name": "SFA Cup", "href": "/scottish-fa-cup/startseite/wettbewerb/SFA"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "435", "average_age": "27.3", "foreigner_percentage": "57.0 %", "average_market_value": "\n", "total_value": "\u20ac538.40m", "competition_type": "first_tier", "competition_name": "Super League 1", "href": "/super-league-1/startseite/wettbewerb/GR1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "435", "average_age": "27.3", "foreigner_percentage": "57.0 %", "average_market_value": "\n", "total_value": "\u20ac538.40m", "competition_type": "domestic_cup", "competition_name": "Kypello Elladas", "href": "/kypello-elladas/startseite/wettbewerb/GRP"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "326", "average_age": "25.2", "foreigner_percentage": "46.9 %", "average_market_value": null, "total_value": "\u20ac434.80m", "competition_type": "first_tier", "competition_name": "Superliga", "href": "/superliga/startseite/wettbewerb/DK1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "326", "average_age": "25.2", "foreigner_percentage": "46.9 %", "average_market_value": null, "total_value": "\u20ac434.80m", "competition_type": "domestic_cup", "competition_name": "Oddset Pokalen", "href": "/oddset-pokalen/startseite/wettbewerb/DKP"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "127", "country_name": "Austria", "country_code": "A1", "total_clubs": "12", "total_players": "346", "average_age": "25.1", "foreigner_percentage": "44.2 %", "average_market_value": null, "total_value": "\u20ac410.24m", "competition_type": "first_tier", "competition_name": "Bundesliga", "href": "/bundesliga/startseite/wettbewerb/A1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "125", "country_name": "Norway", "country_code": "NO1", "total_clubs": "16", "total_players": "412", "average_age": "25.2", "foreigner_percentage": "33.7 %", "average_market_value": "\n", "total_value": "\u20ac377.73m", "competition_type": "first_tier", "competition_name": "Eliteserien", "href": "/eliteserien/startseite/wettbewerb/NO1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "37", "country_name": "Croatia", "country_code": "KR1", "total_clubs": "10", "total_players": "305", "average_age": "25.5", "foreigner_percentage": "40.7 %", "average_market_value": "\n", "total_value": "\u20ac224.85m", "competition_type": "first_tier", "competition_name": "SuperSport HNL", "href": "/supersport-hnl/startseite/wettbewerb/KR1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "147", "country_name": "Sweden", "country_code": "SE1", "total_clubs": "16", "total_players": "429", "average_age": "25.0", "foreigner_percentage": "39.9 %", "average_market_value": "\n", "total_value": "\u20ac243.39m", "competition_type": "first_tier", "competition_name": "Allsvenskan", "href": "/allsvenskan/startseite/wettbewerb/SE1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "215", "country_name": "Serbia", "country_code": "SER1", "total_clubs": "16", "total_players": "476", "average_age": "25.3", "foreigner_percentage": "33.2 %", "average_market_value": null, "total_value": "\u20ac362.28m", "competition_type": "first_tier", "competition_name": "Super liga Srbije", "href": "/super-liga-srbije/startseite/wettbewerb/SER1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "146", "country_name": "Saudi Arabia", "country_code": "SA1", "total_clubs": "18", "total_players": "509", "average_age": "27.2", "foreigner_percentage": "38.9 %", "average_market_value": null, "total_value": "\u20ac1.05bn", "competition_type": "first_tier", "competition_name": "Saudi Pro League", "href": "/saudi-pro-league/startseite/wettbewerb/SA1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "140", "country_name": "Romania", "country_code": "RO1", "total_clubs": "16", "total_players": "474", "average_age": "26.8", "foreigner_percentage": "40.3 %", "average_market_value": null, "total_value": "\u20ac239.76m", "competition_type": "first_tier", "competition_name": "SuperLiga", "href": "/superliga/startseite/wettbewerb/RO1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "12", "country_name": "Australia", "country_code": "AUS1", "total_clubs": "12", "total_players": "378", "average_age": "25.0", "foreigner_percentage": "33.1 %", "average_market_value": null, "total_value": "\u20ac114.53m", "competition_type": "first_tier", "competition_name": "A-League Men", "href": "/a-league-men/startseite/wettbewerb/AUS1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "148", "country_name": "Switzerland", "country_code": "C1", "total_clubs": "12", "total_players": "346", "average_age": "25.2", "foreigner_percentage": "52.3 %", "average_market_value": "\n", "total_value": "\u20ac393.13m", "competition_type": "first_tier", "competition_name": "Super League", "href": "/super-league/startseite/wettbewerb/C1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "77", "country_name": "Japan", "country_code": "JAP1", "total_clubs": "20", "total_players": "695", "average_age": "27.0", "foreigner_percentage": "12.9 %", "average_market_value": "\n", "total_value": "\u20ac295.98m", "competition_type": "first_tier", "competition_name": "J1 League", "href": "/j1-league/startseite/wettbewerb/JAP1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "87", "country_name": "Korea, South", "country_code": "RSK1", "total_clubs": "12", "total_players": "435", "average_age": "26.3", "foreigner_percentage": "13.1 %", "average_market_value": null, "total_value": "\u20ac116.93m", "competition_type": "first_tier", "competition_name": "K League 1", "href": "/k-league-1/startseite/wettbewerb/RSK1"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Champions' Play-Offs", "href": "/jupiler-pro-league-playoff-i/startseite/wettbewerb/EJPL"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Europe Play-Offs", "href": "/jupiler-pro-league-europe-play-offs/startseite/wettbewerb/POBE"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Relegation Play-offs", "href": "/jupiler-pro-league-relegation-play-offs/startseite/wettbewerb/BPO4"} \ No newline at end of file diff --git a/data/countries.json b/data/countries.json index 22caa8e1..370ac7a8 100644 --- a/data/countries.json +++ b/data/countries.json @@ -1,118 +1,124 @@ -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/189", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "527", "average_age": "26.4", "foreigner_percentage": "72.1 %", "average_market_value": null, "total_value": "\u20ac12.58bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/157", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "518", "average_age": "27.3", "foreigner_percentage": "43.8 %", "average_market_value": null, "total_value": "\u20ac5.62bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/75", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "534", "average_age": "26.6", "foreigner_percentage": "68.5 %", "average_market_value": null, "total_value": "\u20ac5.24bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/40", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "517", "average_age": "25.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac5.01bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/50", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "478", "average_age": "25.6", "foreigner_percentage": "62.1 %", "average_market_value": null, "total_value": "\u20ac3.85bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/136", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "486", "average_age": "25.6", "foreigner_percentage": "71.4 %", "average_market_value": null, "total_value": "\u20ac1.86bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/174", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "174", "country_name": "T\u00fcrkiye", "country_code": "TR1", "total_clubs": "18", "total_players": "512", "average_age": "26.5", "foreigner_percentage": "52.5 %", "average_market_value": null, "total_value": "\u20ac1.37bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/122", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "497", "average_age": "25.2", "foreigner_percentage": "49.1 %", "average_market_value": null, "total_value": "\u20ac1.31bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/19", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "452", "average_age": "24.5", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.05bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/141", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "450", "average_age": "25.9", "foreigner_percentage": "38.4 %", "average_market_value": "\n", "total_value": "\u20ac1.04bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/56", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "436", "average_age": "27.1", "foreigner_percentage": "57.3 %", "average_market_value": "\n", "total_value": "\u20ac538.93m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/177", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "438", "average_age": "25.3", "foreigner_percentage": "28.8 %", "average_market_value": null, "total_value": "\u20ac425.08m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/39", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "321", "average_age": "25.0", "foreigner_percentage": "48.0 %", "average_market_value": null, "total_value": "\u20ac411.53m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/172", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "172", "country_name": "Czech Republic", "country_code": "TS1", "total_clubs": "16", "total_players": "471", "average_age": "25.8", "foreigner_percentage": "40.8 %", "average_market_value": null, "total_value": "\u20ac397.43m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/190", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "326", "average_age": "26.7", "foreigner_percentage": "65.3 %", "average_market_value": "\n", "total_value": "\u20ac396.17m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/148", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "148", "country_name": "Switzerland", "country_code": "C1", "total_clubs": "12", "total_players": "338", "average_age": "25.1", "foreigner_percentage": "53.3 %", "average_market_value": "\n", "total_value": "\u20ac384.08m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/135", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "135", "country_name": "Poland", "country_code": "PL1", "total_clubs": "18", "total_players": "515", "average_age": "25.9", "foreigner_percentage": "49.1 %", "average_market_value": "\n", "total_value": "\u20ac382.75m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/127", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "127", "country_name": "Austria", "country_code": "A1", "total_clubs": "12", "total_players": "343", "average_age": "24.9", "foreigner_percentage": "43.7 %", "average_market_value": null, "total_value": "\u20ac359.16m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/125", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "125", "country_name": "Norway", "country_code": "NO1", "total_clubs": "16", "total_players": "418", "average_age": "24.9", "foreigner_percentage": "32.1 %", "average_market_value": "\n", "total_value": "\u20ac334.65m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/215", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "215", "country_name": "Serbia", "country_code": "SER1", "total_clubs": "16", "total_players": "476", "average_age": "25.0", "foreigner_percentage": "33.6 %", "average_market_value": null, "total_value": "\u20ac273.50m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/140", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "140", "country_name": "Romania", "country_code": "RO1", "total_clubs": "16", "total_players": "476", "average_age": "26.6", "foreigner_percentage": "40.3 %", "average_market_value": null, "total_value": "\u20ac235.21m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/147", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "147", "country_name": "Sweden", "country_code": "SE1", "total_clubs": "16", "total_players": "436", "average_age": "24.7", "foreigner_percentage": "39.2 %", "average_market_value": "\n", "total_value": "\u20ac233.51m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/37", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "37", "country_name": "Croatia", "country_code": "KR1", "total_clubs": "10", "total_players": "297", "average_age": "25.5", "foreigner_percentage": "41.1 %", "average_market_value": "\n", "total_value": "\u20ac202.58m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/28", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "28", "country_name": "Bulgaria", "country_code": "BU1", "total_clubs": "16", "total_players": "403", "average_age": "26.1", "foreigner_percentage": "53.1 %", "average_market_value": "\n", "total_value": "\u20ac198.47m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/74", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "74", "country_name": "Israel", "country_code": "ISR1", "total_clubs": "14", "total_players": "380", "average_age": "26.0", "foreigner_percentage": "30.8 %", "average_market_value": null, "total_value": "\u20ac167.90m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/146", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "146", "country_name": "Saudi Arabia", "country_code": "SA1", "total_clubs": "18", "total_players": "503", "average_age": "27.0", "foreigner_percentage": "39.4 %", "average_market_value": null, "total_value": "\u20ac1.11bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/183", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "183", "country_name": "United Arab Emirates", "country_code": "UAE1", "total_clubs": "14", "total_players": "425", "average_age": "26.7", "foreigner_percentage": "53.2 %", "average_market_value": null, "total_value": "\u20ac361.57m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/137", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "137", "country_name": "Qatar", "country_code": "QSL", "total_clubs": "12", "total_players": "353", "average_age": "28.1", "foreigner_percentage": "49.6 %", "average_market_value": null, "total_value": "\u20ac360.83m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/77", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "77", "country_name": "Japan", "country_code": "JAP1", "total_clubs": "20", "total_players": "694", "average_age": "26.8", "foreigner_percentage": "13.0 %", "average_market_value": "\n", "total_value": "\u20ac310.83m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/34", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "34", "country_name": "China", "country_code": "CSL", "total_clubs": "16", "total_players": "511", "average_age": "26.7", "foreigner_percentage": "19.2 %", "average_market_value": null, "total_value": "\u20ac165.66m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/71", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "71", "country_name": "Iran", "country_code": "IRN1", "total_clubs": "16", "total_players": "491", "average_age": "26.5", "foreigner_percentage": "8.4 %", "average_market_value": null, "total_value": "\u20ac133.18m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/87", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "87", "country_name": "Korea, South", "country_code": "RSK1", "total_clubs": "12", "total_players": "425", "average_age": "26.2", "foreigner_percentage": "13.4 %", "average_market_value": null, "total_value": "\u20ac122.43m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/12", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "12", "country_name": "Australia", "country_code": "AUS1", "total_clubs": "12", "total_players": "377", "average_age": "24.8", "foreigner_percentage": "32.1 %", "average_market_value": null, "total_value": "\u20ac105.38m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/180", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "180", "country_name": "Uzbekistan", "country_code": "UZ1", "total_clubs": "16", "total_players": "425", "average_age": "26.2", "foreigner_percentage": "20.0 %", "average_market_value": null, "total_value": "\u20ac98.08m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/70", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "70", "country_name": "Iraq", "country_code": "IRQ1", "total_clubs": "20", "total_players": "598", "average_age": "28.0", "foreigner_percentage": "27.9 %", "average_market_value": null, "total_value": "\u20ac95.44m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/68", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "68", "country_name": "Indonesia", "country_code": "IN1L", "total_clubs": "18", "total_players": "581", "average_age": "27.0", "foreigner_percentage": "33.7 %", "average_market_value": "\n", "total_value": "\u20ac87.70m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/167", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "167", "country_name": "Thailand", "country_code": "THA1", "total_clubs": "16", "total_players": "489", "average_age": "28.2", "foreigner_percentage": "32.7 %", "average_market_value": "\n", "total_value": "\u20ac80.43m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/103", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "103", "country_name": "Malaysia", "country_code": "MYS1", "total_clubs": "13", "total_players": "399", "average_age": "28.3", "foreigner_percentage": "38.8 %", "average_market_value": null, "total_value": "\u20ac57.14m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/185", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "185", "country_name": "Vietnam", "country_code": "VIE1", "total_clubs": "14", "total_players": "449", "average_age": "26.6", "foreigner_percentage": "19.8 %", "average_market_value": null, "total_value": "\u20ac56.53m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/126", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "126", "country_name": "Oman", "country_code": "OM1L", "total_clubs": "14", "total_players": "511", "average_age": "27.8", "foreigner_percentage": "9.4 %", "average_market_value": null, "total_value": "\u20ac39.88m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/90", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "90", "country_name": "Kyrgyzstan", "country_code": "KG1L", "total_clubs": "16", "total_players": "423", "average_age": "25.1", "foreigner_percentage": "38.3 %", "average_market_value": null, "total_value": "\u20ac37.29m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/67", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "67", "country_name": "India", "country_code": "IND1", "total_clubs": "14", "total_players": "395", "average_age": "26.2", "foreigner_percentage": "14.9 %", "average_market_value": null, "total_value": "\u20ac37.15m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/94", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "94", "country_name": "Lebanon", "country_code": "LIB1", "total_clubs": "12", "total_players": "327", "average_age": "26.0", "foreigner_percentage": "16.2 %", "average_market_value": null, "total_value": "\u20ac32.91m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/78", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "78", "country_name": "Jordan", "country_code": "JO1L", "total_clubs": "10", "total_players": "299", "average_age": "26.2", "foreigner_percentage": "13.7 %", "average_market_value": null, "total_value": "\u20ac30.98m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/218", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "218", "country_name": "Hongkong", "country_code": "HGKG", "total_clubs": "10", "total_players": "320", "average_age": "25.7", "foreigner_percentage": "37.2 %", "average_market_value": null, "total_value": "\u20ac20.85m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/165", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "165", "country_name": "Tajikistan", "country_code": "TAD1", "total_clubs": "12", "total_players": "284", "average_age": "25.3", "foreigner_percentage": "28.9 %", "average_market_value": null, "total_value": "\u20ac20.05m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/153", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "153", "country_name": "Singapore", "country_code": "SIN1", "total_clubs": "8", "total_players": "196", "average_age": "26.4", "foreigner_percentage": "41.8 %", "average_market_value": null, "total_value": "\u20ac18.98m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/79", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "79", "country_name": "Cambodia", "country_code": "KHM1", "total_clubs": "11", "total_players": "327", "average_age": "25.0", "foreigner_percentage": "22.3 %", "average_market_value": null, "total_value": "\u20ac16.89m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/116", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "116", "country_name": "Myanmar", "country_code": "MYA1", "total_clubs": "12", "total_players": "383", "average_age": "26.8", "foreigner_percentage": "8.1 %", "average_market_value": "\n", "total_value": "\u20ac15.83m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/16", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "16", "country_name": "Bangladesh", "country_code": "BGD1", "total_clubs": "10", "total_players": "338", "average_age": "25.9", "foreigner_percentage": "16.0 %", "average_market_value": null, "total_value": "\u20ac15.55m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/188", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "188", "country_name": "Cyprus", "country_code": "ZYP1", "total_clubs": "14", "total_players": "407", "average_age": "26.9", "foreigner_percentage": "64.6 %", "average_market_value": null, "total_value": "\u20ac150.43m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/178", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "178", "country_name": "Hungary", "country_code": "UNG1", "total_clubs": "12", "total_players": "359", "average_age": "26.1", "foreigner_percentage": "40.4 %", "average_market_value": "\n", "total_value": "\u20ac146.60m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/13", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "13", "country_name": "Azerbaijan", "country_code": "AZ1", "total_clubs": "12", "total_players": "306", "average_age": "27.0", "foreigner_percentage": "52.3 %", "average_market_value": null, "total_value": "\u20ac123.43m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/154", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "154", "country_name": "Slovakia", "country_code": "SLO1", "total_clubs": "12", "total_players": "336", "average_age": "25.6", "foreigner_percentage": "52.4 %", "average_market_value": null, "total_value": "\u20ac109.54m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/81", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "81", "country_name": "Kazakhstan", "country_code": "KAS1", "total_clubs": "16", "total_players": "397", "average_age": "26.5", "foreigner_percentage": "33.8 %", "average_market_value": null, "total_value": "\u20ac83.57m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/155", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "155", "country_name": "Slovenia", "country_code": "SL1", "total_clubs": "10", "total_players": "243", "average_age": "24.7", "foreigner_percentage": "49.4 %", "average_market_value": "\n", "total_value": "\u20ac66.15m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/18", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "18", "country_name": "Belarus", "country_code": "WER1", "total_clubs": "16", "total_players": "405", "average_age": "25.0", "foreigner_percentage": "19.8 %", "average_market_value": "\n", "total_value": "\u20ac63.35m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/24", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "24", "country_name": "Bosnia-Herzegovina", "country_code": "BOS1", "total_clubs": "10", "total_players": "294", "average_age": "26.2", "foreigner_percentage": "54.8 %", "average_market_value": "\n", "total_value": "\u20ac57.30m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/244", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "244", "country_name": "Kosovo", "country_code": "KO1", "total_clubs": "10", "total_players": "275", "average_age": "26.0", "foreigner_percentage": "41.8 %", "average_market_value": null, "total_value": "\u20ac50.11m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/3", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "3", "country_name": "Albania", "country_code": "ALB1", "total_clubs": "10", "total_players": "275", "average_age": "25.5", "foreigner_percentage": "48.7 %", "average_market_value": "\n", "total_value": "\u20ac49.44m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/10", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "10", "country_name": "Armenia", "country_code": "ARM1", "total_clubs": "10", "total_players": "265", "average_age": "24.8", "foreigner_percentage": "49.4 %", "average_market_value": "\n", "total_value": "\u20ac48.60m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/106", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "106", "country_name": "Malta", "country_code": "MT1N", "total_clubs": "12", "total_players": "299", "average_age": "26.9", "foreigner_percentage": "58.5 %", "average_market_value": null, "total_value": "\u20ac46.50m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/92", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "92", "country_name": "Latvia", "country_code": "LET1", "total_clubs": "10", "total_players": "268", "average_age": "23.3", "foreigner_percentage": "44.0 %", "average_market_value": null, "total_value": "\u20ac45.63m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/98", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "98", "country_name": "Lithuania", "country_code": "LI1", "total_clubs": "10", "total_players": "254", "average_age": "25.2", "foreigner_percentage": "48.0 %", "average_market_value": "\n", "total_value": "\u20ac43.80m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/49", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "49", "country_name": "Finland", "country_code": "FI1", "total_clubs": "12", "total_players": "299", "average_age": "23.8", "foreigner_percentage": "29.8 %", "average_market_value": "\n", "total_value": "\u20ac38.48m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/100", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "100", "country_name": "North Macedonia", "country_code": "MAZ1", "total_clubs": "12", "total_players": "283", "average_age": "25.4", "foreigner_percentage": "28.3 %", "average_market_value": "\n", "total_value": "\u20ac36.55m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/72", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "72", "country_name": "Ireland", "country_code": "IR1", "total_clubs": "10", "total_players": "309", "average_age": "24.3", "foreigner_percentage": "33.7 %", "average_market_value": "\n", "total_value": "\u20ac32.63m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/73", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "73", "country_name": "Iceland", "country_code": "IS1", "total_clubs": "12", "total_players": "297", "average_age": "25.3", "foreigner_percentage": "15.2 %", "average_market_value": "\n", "total_value": "\u20ac29.80m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/216", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "216", "country_name": "Montenegro", "country_code": "MNE1", "total_clubs": "10", "total_players": "247", "average_age": "26.3", "foreigner_percentage": "15.0 %", "average_market_value": null, "total_value": "\u20ac29.05m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/192", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "192", "country_name": "Northern Ireland", "country_code": "NIR1", "total_clubs": "12", "total_players": "311", "average_age": "26.2", "foreigner_percentage": "32.8 %", "average_market_value": null, "total_value": "\u20ac28.89m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/53", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "53", "country_name": "Georgia", "country_code": "GE1N", "total_clubs": "10", "total_players": "250", "average_age": "24.8", "foreigner_percentage": "30.0 %", "average_market_value": "\n", "total_value": "\u20ac28.84m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/112", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "112", "country_name": "Moldova", "country_code": "MO1N", "total_clubs": "8", "total_players": "215", "average_age": "23.4", "foreigner_percentage": "35.3 %", "average_market_value": null, "total_value": "\u20ac28.09m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/99", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "99", "country_name": "Luxembourg", "country_code": "LUX1", "total_clubs": "16", "total_players": "439", "average_age": "25.6", "foreigner_percentage": "63.1 %", "average_market_value": null, "total_value": "\u20ac26.14m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/191", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "191", "country_name": "Wales", "country_code": "WAL2", "total_clubs": "16", "total_players": "404", "average_age": "25.9", "foreigner_percentage": "37.4 %", "average_market_value": null, "total_value": "\u20ac150k"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/47", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "47", "country_name": "Estonia", "country_code": "EST2", "total_clubs": "10", "total_players": "255", "average_age": "21.5", "foreigner_percentage": "9.4 %", "average_market_value": "\n", "total_value": "\u20ac85k"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/26", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "26", "country_name": "Brazil", "country_code": "BRA1", "total_clubs": "20", "total_players": "668", "average_age": "27.1", "foreigner_percentage": "24.0 %", "average_market_value": null, "total_value": "\u20ac1.95bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/184", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "184", "country_name": "United States", "country_code": "MLS1", "total_clubs": "30", "total_players": "851", "average_age": "25.5", "foreigner_percentage": "59.1 %", "average_market_value": "\n", "total_value": "\u20ac1.36bn"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/9", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "9", "country_name": "Argentina", "country_code": "ARG1", "total_clubs": "30", "total_players": "914", "average_age": "26.8", "foreigner_percentage": "16.4 %", "average_market_value": null, "total_value": "\u20ac966.48m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/110", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "110", "country_name": "Mexico", "country_code": "MEX1", "total_clubs": "18", "total_players": "482", "average_age": "26.9", "foreigner_percentage": "35.7 %", "average_market_value": "\n", "total_value": "\u20ac859.55m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/83", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "83", "country_name": "Colombia", "country_code": "COLP", "total_clubs": "20", "total_players": "529", "average_age": "27.6", "foreigner_percentage": "12.7 %", "average_market_value": null, "total_value": "\u20ac205.65m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/179", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "179", "country_name": "Uruguay", "country_code": "URU1", "total_clubs": "16", "total_players": "475", "average_age": "25.6", "foreigner_percentage": "17.7 %", "average_market_value": null, "total_value": "\u20ac166.90m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/33", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "33", "country_name": "Chile", "country_code": "CLPD", "total_clubs": "16", "total_players": "417", "average_age": "27.1", "foreigner_percentage": "26.4 %", "average_market_value": null, "total_value": "\u20ac160.51m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/44", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "44", "country_name": "Ecuador", "country_code": "EC1N", "total_clubs": "16", "total_players": "441", "average_age": "27.0", "foreigner_percentage": "25.4 %", "average_market_value": null, "total_value": "\u20ac160.39m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/132", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "132", "country_name": "Paraguay", "country_code": "PR1A", "total_clubs": "12", "total_players": "376", "average_age": "27.1", "foreigner_percentage": "17.6 %", "average_market_value": null, "total_value": "\u20ac137.40m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/133", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "133", "country_name": "Peru", "country_code": "TDeA", "total_clubs": "18", "total_players": "527", "average_age": "27.2", "foreigner_percentage": "27.1 %", "average_market_value": null, "total_value": "\u20ac135.20m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/23", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "23", "country_name": "Bolivia", "country_code": "BO1A", "total_clubs": "16", "total_players": "485", "average_age": "26.9", "foreigner_percentage": "24.5 %", "average_market_value": "\n", "total_value": "\u20ac89.47m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/182", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "182", "country_name": "Venezuela", "country_code": "VZ1A", "total_clubs": "14", "total_players": "424", "average_age": "25.9", "foreigner_percentage": "16.3 %", "average_market_value": null, "total_value": "\u20ac84.71m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/36", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "36", "country_name": "Costa Rica", "country_code": "CRPD", "total_clubs": "10", "total_players": "271", "average_age": "27.6", "foreigner_percentage": "24.4 %", "average_market_value": null, "total_value": "\u20ac48.45m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/58", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "58", "country_name": "Guatemala", "country_code": "GU1A", "total_clubs": "12", "total_players": "322", "average_age": "28.0", "foreigner_percentage": "27.0 %", "average_market_value": null, "total_value": "\u20ac39.95m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/45", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "45", "country_name": "El Salvador", "country_code": "SL1A", "total_clubs": "12", "total_players": "319", "average_age": "27.0", "foreigner_percentage": "16.3 %", "average_market_value": null, "total_value": "\u20ac34.34m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/66", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "66", "country_name": "Honduras", "country_code": "HO1A", "total_clubs": "11", "total_players": "326", "average_age": "27.0", "foreigner_percentage": "15.6 %", "average_market_value": null, "total_value": "\u20ac29.93m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/130", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "130", "country_name": "Panama", "country_code": "PN1C", "total_clubs": "12", "total_players": "288", "average_age": "25.6", "foreigner_percentage": "11.8 %", "average_market_value": null, "total_value": "\u20ac29.88m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/80", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "80", "country_name": "Canada", "country_code": "CDN1", "total_clubs": "8", "total_players": "172", "average_age": "25.0", "foreigner_percentage": "40.1 %", "average_market_value": null, "total_value": "\u20ac18.81m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/5", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "5", "country_name": "Andorra", "country_code": "AND2", "total_clubs": "8", "total_players": "280", "average_age": "28.1", "foreigner_percentage": "47.5 %", "average_market_value": null, "total_value": "\u20ac1.82m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/208", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "208", "country_name": "Faroe Islands", "country_code": "FAR2", "total_clubs": "10", "total_players": "287", "average_age": "25.1", "foreigner_percentage": "9.1 %", "average_market_value": "\n", "total_value": "\u20ac1.27m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/144", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "144", "country_name": "San Marino", "country_code": "SMR1", "total_clubs": "16", "total_players": "387", "average_age": "26.2", "foreigner_percentage": "74.2 %", "average_market_value": null, "total_value": "\u20ac11.16m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/266", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "266", "country_name": "Gibraltar", "country_code": "GI1", "total_clubs": "12", "total_players": "331", "average_age": "26.5", "foreigner_percentage": "65.3 %", "average_market_value": null, "total_value": "\u20ac10.52m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/121", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "121", "country_name": "Nicaragua", "country_code": "CNIC", "total_clubs": "34", "total_players": "467", "average_age": "27.5", "foreigner_percentage": "22.1 %", "average_market_value": null, "total_value": "\u20ac2.83m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/2", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "2", "country_name": "Egypt", "country_code": "EGY1", "total_clubs": "21", "total_players": "707", "average_age": "27.0", "foreigner_percentage": "16.8 %", "average_market_value": null, "total_value": "\u20ac183.98m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/159", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "159", "country_name": "South Africa", "country_code": "SFA1", "total_clubs": "16", "total_players": "573", "average_age": "27.6", "foreigner_percentage": "16.2 %", "average_market_value": "\n", "total_value": "\u20ac154.78m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/107", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "107", "country_name": "Morocco", "country_code": "MAR1", "total_clubs": "16", "total_players": "499", "average_age": "27.2", "foreigner_percentage": "18.4 %", "average_market_value": "\n", "total_value": "\u20ac138.58m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/4", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "4", "country_name": "Algeria", "country_code": "ALG1", "total_clubs": "16", "total_players": "420", "average_age": "26.4", "foreigner_percentage": "10.7 %", "average_market_value": "\n", "total_value": "\u20ac98.18m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/173", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "173", "country_name": "Tunisia", "country_code": "TUN1", "total_clubs": "16", "total_players": "564", "average_age": "24.9", "foreigner_percentage": "20.6 %", "average_market_value": "\n", "total_value": "\u20ac90.53m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/96", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "96", "country_name": "Libya", "country_code": "LPL", "total_clubs": "36", "total_players": "1.093", "average_age": "27.1", "foreigner_percentage": "24.4 %", "average_market_value": "\n", "total_value": "\u20ac88.89m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/176", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "176", "country_name": "Uganda", "country_code": "UGL1", "total_clubs": "16", "total_players": "501", "average_age": "26.8", "foreigner_percentage": "6.2 %", "average_market_value": null, "total_value": "\u20ac34.80m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/11", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "11", "country_name": "Ethiopia", "country_code": "ETP1", "total_clubs": "20", "total_players": "652", "average_age": "25.4", "foreigner_percentage": "7.2 %", "average_market_value": null, "total_value": "\u20ac32.07m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/54", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "54", "country_name": "Ghana", "country_code": "GHPL", "total_clubs": "18", "total_players": "604", "average_age": "24.3", "foreigner_percentage": "1.8 %", "average_market_value": "\n", "total_value": "\u20ac26.23m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/149", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "149", "country_name": "Senegal", "country_code": "SEN1", "total_clubs": "16", "total_players": "554", "average_age": "22.8", "foreigner_percentage": "4.2 %", "average_market_value": null, "total_value": "\u20ac24.96m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/124", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "124", "country_name": "Nigeria", "country_code": "NPFL", "total_clubs": "20", "total_players": "920", "average_age": "25.2", "foreigner_percentage": "2.5 %", "average_market_value": null, "total_value": "\u20ac1.36m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/35", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "35", "country_name": "Comoros", "country_code": "COM1", "total_clubs": "30", "total_players": "873", "average_age": "26.0", "foreigner_percentage": "5.2 %", "average_market_value": null, "total_value": "-"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/120", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "120", "country_name": "New Zealand", "country_code": "NNL1", "total_clubs": "12", "total_players": "318", "average_age": "23.9", "foreigner_percentage": "26.7 %", "average_market_value": "\n", "total_value": "\u20ac14.48m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/48", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "48", "country_name": "Fiji", "country_code": "FIJ1", "total_clubs": "10", "total_players": "384", "average_age": "26.0", "foreigner_percentage": "8.1 %", "average_market_value": "\n", "total_value": "\u20ac13.30m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/134", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "134", "country_name": "Philippines", "country_code": "PFL1", "total_clubs": "11", "total_players": "341", "average_age": "26.8", "foreigner_percentage": "42.2 %", "average_market_value": null, "total_value": "\u20ac11.45m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/164", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "164", "country_name": "Chinese Taipei", "country_code": "TFPL", "total_clubs": "8", "total_players": "230", "average_age": "25.5", "foreigner_percentage": "19.1 %", "average_market_value": null, "total_value": "\u20ac4.95m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/91", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "91", "country_name": "Laos", "country_code": "LAO1", "total_clubs": "10", "total_players": "281", "average_age": "23.7", "foreigner_percentage": "17.1 %", "average_market_value": null, "total_value": "\u20ac4.86m"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/76", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "76", "country_name": "Jamaica", "country_code": "JPL1", "total_clubs": "14", "total_players": "569", "average_age": "24.4", "foreigner_percentage": "10.7 %", "average_market_value": "\n", "total_value": "\u20ac700k"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/43", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "43", "country_name": "Dominican Republic", "country_code": "DO1P", "total_clubs": "6", "total_players": "139", "average_age": "26.5", "foreigner_percentage": "29.5 %", "average_market_value": "\n", "total_value": "\u20ac225k"} -{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/228", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "228", "country_name": "Puerto Rico", "country_code": "PRA1", "total_clubs": "10", "total_players": "363", "average_age": "23.7", "foreigner_percentage": "21.2 %", "average_market_value": null, "total_value": "\u20ac175k"} \ No newline at end of file +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/26", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "26", "country_name": "Brazil", "country_code": "BRA1", "total_clubs": "20", "total_players": "664", "average_age": "27.3", "foreigner_percentage": "23.8 %", "average_market_value": null, "total_value": "\u20ac2.02bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/184", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "184", "country_name": "United States", "country_code": "MLS1", "total_clubs": "30", "total_players": "858", "average_age": "25.7", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac1.40bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/9", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "9", "country_name": "Argentina", "country_code": "ARG1", "total_clubs": "30", "total_players": "921", "average_age": "26.9", "foreigner_percentage": "16.2 %", "average_market_value": null, "total_value": "\u20ac1.00bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/110", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "110", "country_name": "Mexico", "country_code": "MEX1", "total_clubs": "18", "total_players": "475", "average_age": "27.0", "foreigner_percentage": "35.2 %", "average_market_value": "\n", "total_value": "\u20ac960.55m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/83", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "83", "country_name": "Colombia", "country_code": "COLP", "total_clubs": "20", "total_players": "521", "average_age": "27.8", "foreigner_percentage": "12.5 %", "average_market_value": null, "total_value": "\u20ac200.45m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/44", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "44", "country_name": "Ecuador", "country_code": "EC1N", "total_clubs": "16", "total_players": "447", "average_age": "27.1", "foreigner_percentage": "25.1 %", "average_market_value": null, "total_value": "\u20ac175.74m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/33", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "33", "country_name": "Chile", "country_code": "CLPD", "total_clubs": "16", "total_players": "425", "average_age": "27.1", "foreigner_percentage": "26.8 %", "average_market_value": null, "total_value": "\u20ac161.32m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/179", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "179", "country_name": "Uruguay", "country_code": "URU1", "total_clubs": "16", "total_players": "474", "average_age": "25.8", "foreigner_percentage": "17.5 %", "average_market_value": null, "total_value": "\u20ac159.47m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/133", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "133", "country_name": "Peru", "country_code": "TDeA", "total_clubs": "18", "total_players": "525", "average_age": "27.5", "foreigner_percentage": "27.6 %", "average_market_value": null, "total_value": "\u20ac135.57m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/132", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "132", "country_name": "Paraguay", "country_code": "PR1A", "total_clubs": "12", "total_players": "370", "average_age": "27.3", "foreigner_percentage": "17.3 %", "average_market_value": null, "total_value": "\u20ac134.43m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/182", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "182", "country_name": "Venezuela", "country_code": "VZ1A", "total_clubs": "14", "total_players": "424", "average_age": "26.2", "foreigner_percentage": "16.3 %", "average_market_value": null, "total_value": "\u20ac97.46m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/23", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "23", "country_name": "Bolivia", "country_code": "BO1A", "total_clubs": "16", "total_players": "471", "average_age": "27.4", "foreigner_percentage": "25.3 %", "average_market_value": "\n", "total_value": "\u20ac88.47m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/36", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "36", "country_name": "Costa Rica", "country_code": "CRPD", "total_clubs": "10", "total_players": "283", "average_age": "27.4", "foreigner_percentage": "24.0 %", "average_market_value": null, "total_value": "\u20ac49.80m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/58", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "58", "country_name": "Guatemala", "country_code": "GU1A", "total_clubs": "12", "total_players": "330", "average_age": "28.0", "foreigner_percentage": "26.4 %", "average_market_value": null, "total_value": "\u20ac41.71m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/130", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "130", "country_name": "Panama", "country_code": "PN1C", "total_clubs": "12", "total_players": "295", "average_age": "25.5", "foreigner_percentage": "11.9 %", "average_market_value": null, "total_value": "\u20ac37.08m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/66", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "66", "country_name": "Honduras", "country_code": "HO1A", "total_clubs": "11", "total_players": "338", "average_age": "26.9", "foreigner_percentage": "15.1 %", "average_market_value": null, "total_value": "\u20ac35.90m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/146", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "146", "country_name": "Saudi Arabia", "country_code": "SA1", "total_clubs": "18", "total_players": "509", "average_age": "27.2", "foreigner_percentage": "38.9 %", "average_market_value": null, "total_value": "\u20ac1.05bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/183", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "183", "country_name": "United Arab Emirates", "country_code": "UAE1", "total_clubs": "14", "total_players": "430", "average_age": "26.8", "foreigner_percentage": "53.7 %", "average_market_value": null, "total_value": "\u20ac326.41m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/137", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "137", "country_name": "Qatar", "country_code": "QSL", "total_clubs": "12", "total_players": "354", "average_age": "28.2", "foreigner_percentage": "50.0 %", "average_market_value": null, "total_value": "\u20ac322.78m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/77", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "77", "country_name": "Japan", "country_code": "JAP1", "total_clubs": "20", "total_players": "695", "average_age": "27.0", "foreigner_percentage": "12.9 %", "average_market_value": "\n", "total_value": "\u20ac295.98m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/34", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "34", "country_name": "China", "country_code": "CSL", "total_clubs": "16", "total_players": "509", "average_age": "26.9", "foreigner_percentage": "19.4 %", "average_market_value": null, "total_value": "\u20ac159.08m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/71", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "71", "country_name": "Iran", "country_code": "IRN1", "total_clubs": "16", "total_players": "490", "average_age": "26.8", "foreigner_percentage": "8.4 %", "average_market_value": null, "total_value": "\u20ac133.43m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/87", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "87", "country_name": "Korea, South", "country_code": "RSK1", "total_clubs": "12", "total_players": "437", "average_age": "26.4", "foreigner_percentage": "13.3 %", "average_market_value": null, "total_value": "\u20ac117.25m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/12", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "12", "country_name": "Australia", "country_code": "AUS1", "total_clubs": "12", "total_players": "378", "average_age": "25.0", "foreigner_percentage": "33.1 %", "average_market_value": null, "total_value": "\u20ac114.53m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/70", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "70", "country_name": "Iraq", "country_code": "IRQ1", "total_clubs": "20", "total_players": "616", "average_age": "28.1", "foreigner_percentage": "26.5 %", "average_market_value": null, "total_value": "\u20ac102.88m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/180", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "180", "country_name": "Uzbekistan", "country_code": "UZ1", "total_clubs": "16", "total_players": "403", "average_age": "26.5", "foreigner_percentage": "20.8 %", "average_market_value": null, "total_value": "\u20ac93.33m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/68", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "68", "country_name": "Indonesia", "country_code": "IN1L", "total_clubs": "18", "total_players": "579", "average_age": "27.3", "foreigner_percentage": "33.9 %", "average_market_value": "\n", "total_value": "\u20ac86.67m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/167", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "167", "country_name": "Thailand", "country_code": "THA1", "total_clubs": "16", "total_players": "491", "average_age": "28.5", "foreigner_percentage": "32.8 %", "average_market_value": "\n", "total_value": "\u20ac86.48m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/103", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "103", "country_name": "Malaysia", "country_code": "MYS1", "total_clubs": "13", "total_players": "396", "average_age": "28.5", "foreigner_percentage": "38.9 %", "average_market_value": null, "total_value": "\u20ac59.28m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/185", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "185", "country_name": "Vietnam", "country_code": "VIE1", "total_clubs": "14", "total_players": "445", "average_age": "26.9", "foreigner_percentage": "19.3 %", "average_market_value": null, "total_value": "\u20ac56.50m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/126", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "126", "country_name": "Oman", "country_code": "OM1L", "total_clubs": "14", "total_players": "515", "average_age": "28.0", "foreigner_percentage": "9.5 %", "average_market_value": null, "total_value": "\u20ac42.89m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/90", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "90", "country_name": "Kyrgyzstan", "country_code": "KG1L", "total_clubs": "16", "total_players": "435", "average_age": "25.3", "foreigner_percentage": "38.2 %", "average_market_value": null, "total_value": "\u20ac37.29m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/67", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "67", "country_name": "India", "country_code": "IND1", "total_clubs": "14", "total_players": "393", "average_age": "26.5", "foreigner_percentage": "14.8 %", "average_market_value": null, "total_value": "\u20ac36.00m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/94", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "94", "country_name": "Lebanon", "country_code": "LIB1", "total_clubs": "12", "total_players": "326", "average_age": "26.2", "foreigner_percentage": "16.6 %", "average_market_value": null, "total_value": "\u20ac32.81m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/78", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "78", "country_name": "Jordan", "country_code": "JO1L", "total_clubs": "10", "total_players": "319", "average_age": "26.2", "foreigner_percentage": "12.9 %", "average_market_value": null, "total_value": "\u20ac30.92m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/165", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "165", "country_name": "Tajikistan", "country_code": "TAD1", "total_clubs": "12", "total_players": "287", "average_age": "25.5", "foreigner_percentage": "28.2 %", "average_market_value": null, "total_value": "\u20ac23.13m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/153", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "153", "country_name": "Singapore", "country_code": "SIN1", "total_clubs": "8", "total_players": "202", "average_age": "26.5", "foreigner_percentage": "41.1 %", "average_market_value": null, "total_value": "\u20ac19.79m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/218", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "218", "country_name": "Hongkong", "country_code": "HGKG", "total_clubs": "10", "total_players": "322", "average_age": "25.9", "foreigner_percentage": "37.0 %", "average_market_value": null, "total_value": "\u20ac18.93m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/79", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "79", "country_name": "Cambodia", "country_code": "KHM1", "total_clubs": "11", "total_players": "327", "average_age": "25.3", "foreigner_percentage": "22.3 %", "average_market_value": null, "total_value": "\u20ac18.41m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/120", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "120", "country_name": "New Zealand", "country_code": "NNL1", "total_clubs": "12", "total_players": "295", "average_age": "23.9", "foreigner_percentage": "25.4 %", "average_market_value": "\n", "total_value": "\u20ac16.36m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/134", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "134", "country_name": "Philippines", "country_code": "PFL1", "total_clubs": "11", "total_players": "343", "average_age": "27.0", "foreigner_percentage": "42.3 %", "average_market_value": null, "total_value": "\u20ac16.33m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/2", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "2", "country_name": "Egypt", "country_code": "EGY1", "total_clubs": "21", "total_players": "713", "average_age": "27.2", "foreigner_percentage": "16.8 %", "average_market_value": null, "total_value": "\u20ac183.33m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/159", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "159", "country_name": "South Africa", "country_code": "SFA1", "total_clubs": "16", "total_players": "595", "average_age": "27.8", "foreigner_percentage": "15.5 %", "average_market_value": "\n", "total_value": "\u20ac174.43m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/107", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "107", "country_name": "Morocco", "country_code": "MAR1", "total_clubs": "16", "total_players": "498", "average_age": "27.4", "foreigner_percentage": "18.5 %", "average_market_value": "\n", "total_value": "\u20ac153.48m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/4", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "4", "country_name": "Algeria", "country_code": "ALG1", "total_clubs": "16", "total_players": "424", "average_age": "26.6", "foreigner_percentage": "10.6 %", "average_market_value": "\n", "total_value": "\u20ac101.95m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/173", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "173", "country_name": "Tunisia", "country_code": "TUN1", "total_clubs": "16", "total_players": "561", "average_age": "25.1", "foreigner_percentage": "20.7 %", "average_market_value": "\n", "total_value": "\u20ac95.43m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/96", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "96", "country_name": "Libya", "country_code": "LPL", "total_clubs": "36", "total_players": "1.116", "average_age": "27.2", "foreigner_percentage": "24.2 %", "average_market_value": "\n", "total_value": "\u20ac91.58m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/176", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "176", "country_name": "Uganda", "country_code": "UGL1", "total_clubs": "16", "total_players": "501", "average_age": "27.1", "foreigner_percentage": "6.4 %", "average_market_value": null, "total_value": "\u20ac42.69m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/11", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "11", "country_name": "Ethiopia", "country_code": "ETP1", "total_clubs": "20", "total_players": "662", "average_age": "25.6", "foreigner_percentage": "8.2 %", "average_market_value": null, "total_value": "\u20ac31.97m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/54", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "54", "country_name": "Ghana", "country_code": "GHPL", "total_clubs": "18", "total_players": "625", "average_age": "24.3", "foreigner_percentage": "1.8 %", "average_market_value": "\n", "total_value": "\u20ac27.85m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/149", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "149", "country_name": "Senegal", "country_code": "SEN1", "total_clubs": "16", "total_players": "550", "average_age": "22.7", "foreigner_percentage": "3.8 %", "average_market_value": null, "total_value": "\u20ac24.25m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/124", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "124", "country_name": "Nigeria", "country_code": "NPFL", "total_clubs": "20", "total_players": "820", "average_age": "23.9", "foreigner_percentage": "2.3 %", "average_market_value": null, "total_value": "\u20ac1.19m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/35", "parent": {"type": "confederation", "href": "/wettbewerbe/afrika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/afrika"}, "country_id": "35", "country_name": "Comoros", "country_code": "COM1", "total_clubs": "30", "total_players": "921", "average_age": "26.3", "foreigner_percentage": "5.4 %", "average_market_value": null, "total_value": "-"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/116", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "116", "country_name": "Myanmar", "country_code": "MYA1", "total_clubs": "12", "total_players": "382", "average_age": "26.9", "foreigner_percentage": "7.6 %", "average_market_value": "\n", "total_value": "\u20ac15.73m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/16", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "16", "country_name": "Bangladesh", "country_code": "BGD1", "total_clubs": "10", "total_players": "344", "average_age": "25.9", "foreigner_percentage": "14.5 %", "average_market_value": null, "total_value": "\u20ac15.47m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/48", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "48", "country_name": "Fiji", "country_code": "FIJ1", "total_clubs": "10", "total_players": "301", "average_age": "25.7", "foreigner_percentage": "7.6 %", "average_market_value": "\n", "total_value": "\u20ac10.61m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/164", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "164", "country_name": "Chinese Taipei", "country_code": "TFPL", "total_clubs": "8", "total_players": "229", "average_age": "25.8", "foreigner_percentage": "17.9 %", "average_market_value": null, "total_value": "\u20ac5.02m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/91", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "91", "country_name": "Laos", "country_code": "LAO1", "total_clubs": "10", "total_players": "281", "average_age": "23.9", "foreigner_percentage": "17.1 %", "average_market_value": null, "total_value": "\u20ac4.79m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/104", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "104", "country_name": "Maldives", "country_code": "MLD1", "total_clubs": "10", "total_players": "289", "average_age": "29.7", "foreigner_percentage": "17.6 %", "average_market_value": null, "total_value": "\u20ac1.35m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/22", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "22", "country_name": "Bhutan", "country_code": "BH1L", "total_clubs": "10", "total_players": "312", "average_age": "25.8", "foreigner_percentage": "19.2 %", "average_market_value": null, "total_value": "\u20ac1.21m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/242", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "242", "country_name": "Timor-Leste", "country_code": "TLE1", "total_clubs": "10", "total_players": "103", "average_age": "25.5", "foreigner_percentage": "17.5 %", "average_market_value": null, "total_value": "\u20ac395k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/27", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "27", "country_name": "Brunei Darussalam", "country_code": "BSL1", "total_clubs": "12", "total_players": "376", "average_age": "29.5", "foreigner_percentage": "6.1 %", "average_market_value": null, "total_value": "\u20ac135k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/158", "parent": {"type": "confederation", "href": "/wettbewerbe/asien", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/asien"}, "country_id": "158", "country_name": "Sri Lanka", "country_code": "SRL1", "total_clubs": "14", "total_players": "404", "average_age": "31.8", "foreigner_percentage": "9.4 %", "average_market_value": null, "total_value": "-"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/45", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "45", "country_name": "El Salvador", "country_code": "SL1A", "total_clubs": "12", "total_players": "316", "average_age": "27.1", "foreigner_percentage": "15.8 %", "average_market_value": null, "total_value": "\u20ac33.76m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/80", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "80", "country_name": "Canada", "country_code": "CDN1", "total_clubs": "8", "total_players": "205", "average_age": "24.9", "foreigner_percentage": "37.6 %", "average_market_value": null, "total_value": "\u20ac22.70m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/121", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "121", "country_name": "Nicaragua", "country_code": "NC1A", "total_clubs": "10", "total_players": "265", "average_age": "27.3", "foreigner_percentage": "22.6 %", "average_market_value": null, "total_value": "\u20ac15.19m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/76", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "76", "country_name": "Jamaica", "country_code": "JPL1", "total_clubs": "14", "total_players": "579", "average_age": "24.6", "foreigner_percentage": "10.2 %", "average_market_value": "\n", "total_value": "\u20ac700k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/20", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "20", "country_name": "Belize", "country_code": "BZ1A", "total_clubs": "7", "total_players": "169", "average_age": "25.9", "foreigner_percentage": "23.7 %", "average_market_value": null, "total_value": "\u20ac275k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/43", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "43", "country_name": "Dominican Republic", "country_code": "DO1P", "total_clubs": "6", "total_players": "140", "average_age": "26.7", "foreigner_percentage": "29.3 %", "average_market_value": "\n", "total_value": "\u20ac225k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/228", "parent": {"type": "confederation", "href": "/wettbewerbe/amerika", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/amerika"}, "country_id": "228", "country_name": "Puerto Rico", "country_code": "PRA1", "total_clubs": "10", "total_players": "302", "average_age": "23.9", "foreigner_percentage": "20.5 %", "average_market_value": null, "total_value": "\u20ac125k"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/189", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "189", "country_name": "England", "country_code": "GB1", "total_clubs": "20", "total_players": "555", "average_age": "26.5", "foreigner_percentage": "70.6 %", "average_market_value": null, "total_value": "\u20ac12.47bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/157", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "157", "country_name": "Spain", "country_code": "ES1", "total_clubs": "20", "total_players": "521", "average_age": "27.6", "foreigner_percentage": "43.8 %", "average_market_value": null, "total_value": "\u20ac5.43bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/75", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "75", "country_name": "Italy", "country_code": "IT1", "total_clubs": "20", "total_players": "536", "average_age": "26.9", "foreigner_percentage": "68.7 %", "average_market_value": null, "total_value": "\u20ac5.28bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/40", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "40", "country_name": "Germany", "country_code": "L1", "total_clubs": "18", "total_players": "516", "average_age": "26.1", "foreigner_percentage": "58.9 %", "average_market_value": "\n", "total_value": "\u20ac5.13bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/50", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "50", "country_name": "France", "country_code": "FR1", "total_clubs": "18", "total_players": "481", "average_age": "25.8", "foreigner_percentage": "63.2 %", "average_market_value": null, "total_value": "\u20ac4.70bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/136", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "136", "country_name": "Portugal", "country_code": "PO1", "total_clubs": "18", "total_players": "491", "average_age": "25.7", "foreigner_percentage": "70.1 %", "average_market_value": null, "total_value": "\u20ac2.03bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/174", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "174", "country_name": "T\u00fcrkiye", "country_code": "TR1", "total_clubs": "18", "total_players": "512", "average_age": "26.7", "foreigner_percentage": "52.0 %", "average_market_value": null, "total_value": "\u20ac1.38bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/122", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "122", "country_name": "Netherlands", "country_code": "NL1", "total_clubs": "18", "total_players": "498", "average_age": "25.4", "foreigner_percentage": "48.4 %", "average_market_value": null, "total_value": "\u20ac1.38bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/19", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "total_clubs": "16", "total_players": "454", "average_age": "24.7", "foreigner_percentage": "62.6 %", "average_market_value": null, "total_value": "\u20ac1.13bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/141", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "141", "country_name": "Russia", "country_code": "RU1", "total_clubs": "16", "total_players": "450", "average_age": "26.1", "foreigner_percentage": "38.4 %", "average_market_value": "\n", "total_value": "\u20ac1.04bn"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/56", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "56", "country_name": "Greece", "country_code": "GR1", "total_clubs": "14", "total_players": "435", "average_age": "27.4", "foreigner_percentage": "57.0 %", "average_market_value": "\n", "total_value": "\u20ac538.40m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/177", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "177", "country_name": "Ukraine", "country_code": "UKR1", "total_clubs": "16", "total_players": "444", "average_age": "25.5", "foreigner_percentage": "28.4 %", "average_market_value": null, "total_value": "\u20ac450.73m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/39", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "39", "country_name": "Denmark", "country_code": "DK1", "total_clubs": "12", "total_players": "326", "average_age": "25.2", "foreigner_percentage": "46.9 %", "average_market_value": null, "total_value": "\u20ac434.80m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/172", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "172", "country_name": "Czech Republic", "country_code": "TS1", "total_clubs": "16", "total_players": "461", "average_age": "26.0", "foreigner_percentage": "40.3 %", "average_market_value": null, "total_value": "\u20ac417.49m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/127", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "127", "country_name": "Austria", "country_code": "A1", "total_clubs": "12", "total_players": "346", "average_age": "25.1", "foreigner_percentage": "44.2 %", "average_market_value": null, "total_value": "\u20ac410.24m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/190", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "190", "country_name": "Scotland", "country_code": "SC1", "total_clubs": "12", "total_players": "339", "average_age": "26.8", "foreigner_percentage": "59.0 %", "average_market_value": "\n", "total_value": "\u20ac401.78m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/135", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "135", "country_name": "Poland", "country_code": "PL1", "total_clubs": "18", "total_players": "523", "average_age": "26.1", "foreigner_percentage": "48.4 %", "average_market_value": "\n", "total_value": "\u20ac398.73m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/148", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "148", "country_name": "Switzerland", "country_code": "C1", "total_clubs": "12", "total_players": "346", "average_age": "25.2", "foreigner_percentage": "52.3 %", "average_market_value": "\n", "total_value": "\u20ac393.13m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/125", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "125", "country_name": "Norway", "country_code": "NO1", "total_clubs": "16", "total_players": "412", "average_age": "25.2", "foreigner_percentage": "33.7 %", "average_market_value": "\n", "total_value": "\u20ac377.73m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/215", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "215", "country_name": "Serbia", "country_code": "SER1", "total_clubs": "16", "total_players": "477", "average_age": "25.2", "foreigner_percentage": "33.3 %", "average_market_value": null, "total_value": "\u20ac362.28m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/147", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "147", "country_name": "Sweden", "country_code": "SE1", "total_clubs": "16", "total_players": "429", "average_age": "25.0", "foreigner_percentage": "39.9 %", "average_market_value": "\n", "total_value": "\u20ac243.39m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/140", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "140", "country_name": "Romania", "country_code": "RO1", "total_clubs": "16", "total_players": "475", "average_age": "26.8", "foreigner_percentage": "40.2 %", "average_market_value": null, "total_value": "\u20ac239.76m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/37", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "37", "country_name": "Croatia", "country_code": "KR1", "total_clubs": "10", "total_players": "305", "average_age": "25.5", "foreigner_percentage": "40.7 %", "average_market_value": "\n", "total_value": "\u20ac224.85m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/28", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "28", "country_name": "Bulgaria", "country_code": "BU1", "total_clubs": "16", "total_players": "406", "average_age": "26.3", "foreigner_percentage": "53.0 %", "average_market_value": "\n", "total_value": "\u20ac205.69m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/74", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "74", "country_name": "Israel", "country_code": "ISR1", "total_clubs": "14", "total_players": "376", "average_age": "26.1", "foreigner_percentage": "30.6 %", "average_market_value": null, "total_value": "\u20ac174.83m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/178", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "178", "country_name": "Hungary", "country_code": "UNG1", "total_clubs": "12", "total_players": "362", "average_age": "26.3", "foreigner_percentage": "39.8 %", "average_market_value": "\n", "total_value": "\u20ac152.95m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/188", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "188", "country_name": "Cyprus", "country_code": "ZYP1", "total_clubs": "14", "total_players": "399", "average_age": "27.1", "foreigner_percentage": "64.2 %", "average_market_value": null, "total_value": "\u20ac149.44m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/13", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "13", "country_name": "Azerbaijan", "country_code": "AZ1", "total_clubs": "12", "total_players": "307", "average_age": "27.2", "foreigner_percentage": "51.8 %", "average_market_value": null, "total_value": "\u20ac136.43m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/154", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "154", "country_name": "Slovakia", "country_code": "SLO1", "total_clubs": "12", "total_players": "339", "average_age": "25.8", "foreigner_percentage": "52.8 %", "average_market_value": null, "total_value": "\u20ac113.67m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/81", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "81", "country_name": "Kazakhstan", "country_code": "KAS1", "total_clubs": "16", "total_players": "425", "average_age": "26.7", "foreigner_percentage": "36.9 %", "average_market_value": null, "total_value": "\u20ac93.42m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/155", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "155", "country_name": "Slovenia", "country_code": "SL1", "total_clubs": "10", "total_players": "240", "average_age": "24.9", "foreigner_percentage": "49.6 %", "average_market_value": "\n", "total_value": "\u20ac69.18m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/18", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "18", "country_name": "Belarus", "country_code": "WER1", "total_clubs": "16", "total_players": "411", "average_age": "25.4", "foreigner_percentage": "21.7 %", "average_market_value": "\n", "total_value": "\u20ac64.38m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/24", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "24", "country_name": "Bosnia-Herzegovina", "country_code": "BOS1", "total_clubs": "10", "total_players": "300", "average_age": "26.4", "foreigner_percentage": "54.0 %", "average_market_value": "\n", "total_value": "\u20ac57.95m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/92", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "92", "country_name": "Latvia", "country_code": "LET1", "total_clubs": "10", "total_players": "271", "average_age": "23.6", "foreigner_percentage": "45.0 %", "average_market_value": null, "total_value": "\u20ac56.80m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/98", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "98", "country_name": "Lithuania", "country_code": "LI1", "total_clubs": "10", "total_players": "254", "average_age": "25.4", "foreigner_percentage": "49.2 %", "average_market_value": "\n", "total_value": "\u20ac55.78m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/244", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "244", "country_name": "Kosovo", "country_code": "KO1", "total_clubs": "10", "total_players": "283", "average_age": "26.1", "foreigner_percentage": "41.0 %", "average_market_value": null, "total_value": "\u20ac54.77m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/106", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "106", "country_name": "Malta", "country_code": "MT1N", "total_clubs": "12", "total_players": "297", "average_age": "27.0", "foreigner_percentage": "58.2 %", "average_market_value": null, "total_value": "\u20ac54.04m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/3", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "3", "country_name": "Albania", "country_code": "ALB1", "total_clubs": "10", "total_players": "276", "average_age": "25.7", "foreigner_percentage": "48.2 %", "average_market_value": "\n", "total_value": "\u20ac51.83m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/10", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "10", "country_name": "Armenia", "country_code": "ARM1", "total_clubs": "10", "total_players": "267", "average_age": "25.0", "foreigner_percentage": "49.1 %", "average_market_value": "\n", "total_value": "\u20ac50.09m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/49", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "49", "country_name": "Finland", "country_code": "FI1", "total_clubs": "12", "total_players": "309", "average_age": "24.1", "foreigner_percentage": "32.7 %", "average_market_value": "\n", "total_value": "\u20ac43.80m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/100", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "100", "country_name": "North Macedonia", "country_code": "MAZ1", "total_clubs": "12", "total_players": "298", "average_age": "25.4", "foreigner_percentage": "26.2 %", "average_market_value": "\n", "total_value": "\u20ac42.34m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/72", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "72", "country_name": "Ireland", "country_code": "IR1", "total_clubs": "10", "total_players": "324", "average_age": "24.3", "foreigner_percentage": "32.7 %", "average_market_value": "\n", "total_value": "\u20ac38.65m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/53", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "53", "country_name": "Georgia", "country_code": "GE1N", "total_clubs": "10", "total_players": "260", "average_age": "24.8", "foreigner_percentage": "29.6 %", "average_market_value": "\n", "total_value": "\u20ac36.85m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/216", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "216", "country_name": "Montenegro", "country_code": "MNE1", "total_clubs": "10", "total_players": "252", "average_age": "26.7", "foreigner_percentage": "14.3 %", "average_market_value": null, "total_value": "\u20ac34.05m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/5", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "5", "country_name": "Andorra", "country_code": "AND1", "total_clubs": "10", "total_players": "231", "average_age": "27.2", "foreigner_percentage": "86.1 %", "average_market_value": null, "total_value": "\u20ac30.10m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/73", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "73", "country_name": "Iceland", "country_code": "IS1", "total_clubs": "12", "total_players": "284", "average_age": "25.8", "foreigner_percentage": "17.3 %", "average_market_value": "\n", "total_value": "\u20ac30.04m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/192", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "192", "country_name": "Northern Ireland", "country_code": "NIR1", "total_clubs": "12", "total_players": "345", "average_age": "26.0", "foreigner_percentage": "28.7 %", "average_market_value": null, "total_value": "\u20ac29.48m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/47", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "47", "country_name": "Estonia", "country_code": "EST1", "total_clubs": "10", "total_players": "260", "average_age": "23.5", "foreigner_percentage": "23.5 %", "average_market_value": "\n", "total_value": "\u20ac28.14m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/99", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "99", "country_name": "Luxembourg", "country_code": "LUX1", "total_clubs": "16", "total_players": "437", "average_age": "25.9", "foreigner_percentage": "63.2 %", "average_market_value": null, "total_value": "\u20ac28.13m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/112", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "112", "country_name": "Moldova", "country_code": "MO1N", "total_clubs": "8", "total_players": "223", "average_age": "23.3", "foreigner_percentage": "35.0 %", "average_market_value": null, "total_value": "\u20ac26.46m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/208", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "208", "country_name": "Faroe Islands", "country_code": "FARO", "total_clubs": "10", "total_players": "298", "average_age": "25.6", "foreigner_percentage": "21.8 %", "average_market_value": null, "total_value": "\u20ac15.16m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/191", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "191", "country_name": "Wales", "country_code": "WAL1", "total_clubs": "12", "total_players": "274", "average_age": "26.2", "foreigner_percentage": "37.6 %", "average_market_value": null, "total_value": "\u20ac14.09m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/144", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "144", "country_name": "San Marino", "country_code": "SMR1", "total_clubs": "16", "total_players": "385", "average_age": "26.5", "foreigner_percentage": "74.0 %", "average_market_value": null, "total_value": "\u20ac12.71m"} +{"type": "country", "href": "/wettbewerbe/national/wettbewerbe/266", "parent": {"type": "confederation", "href": "/wettbewerbe/europa", "seasoned_href": "https://www.transfermarkt.co.uk/wettbewerbe/europa"}, "country_id": "266", "country_name": "Gibraltar", "country_code": "GI1", "total_clubs": "12", "total_players": "315", "average_age": "26.8", "foreigner_percentage": "63.8 %", "average_market_value": null, "total_value": "\u20ac12.53m"} \ No newline at end of file diff --git a/data/raw/transfermarkt-scraper.dvc b/data/raw/transfermarkt-scraper.dvc index 5de3ae0f..543a1e98 100644 --- a/data/raw/transfermarkt-scraper.dvc +++ b/data/raw/transfermarkt-scraper.dvc @@ -1,6 +1,6 @@ outs: -- md5: f08257faab036ec0e93b1a1e923d0373.dir - size: 510528071 +- md5: 6829abea768831f7632fc20be9b8cc7c.dir + size: 509943406 nfiles: 74 hash: md5 path: transfermarkt-scraper diff --git a/data/supplemental_competitions.json b/data/supplemental_competitions.json new file mode 100644 index 00000000..04389b97 --- /dev/null +++ b/data/supplemental_competitions.json @@ -0,0 +1,3 @@ +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Champions' Play-Offs", "href": "/jupiler-pro-league-playoff-i/startseite/wettbewerb/EJPL"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Europe Play-Offs", "href": "/jupiler-pro-league-europe-play-offs/startseite/wettbewerb/POBE"} +{"type": "competition", "parent": {"type": "confederation", "href": "/wettbewerbe/europa"}, "country_id": "19", "country_name": "Belgium", "country_code": "BE1", "competition_type": "play_off", "competition_name": "Jupiler Pro League Relegation Play-offs", "href": "/jupiler-pro-league-relegation-play-offs/startseite/wettbewerb/BPO4"} diff --git a/data/tournament_editions.json b/data/tournament_editions.json index 3102d89b..4fe353d2 100644 --- a/data/tournament_editions.json +++ b/data/tournament_editions.json @@ -1,3 +1,4 @@ +{"type": "tournament_edition", "href": "/weltmeisterschaft/startseite/pokalwettbewerb/FIWC/saison_id/2025", "year": "2026", "season": "2025"} {"type": "tournament_edition", "href": "/weltmeisterschaft/startseite/pokalwettbewerb/FIWC/saison_id/2021", "year": "2022", "season": "2021"} {"type": "tournament_edition", "href": "/weltmeisterschaft/startseite/pokalwettbewerb/FIWC/saison_id/2017", "year": "2018", "season": "2017"} {"type": "tournament_edition", "href": "/weltmeisterschaft/startseite/pokalwettbewerb/FIWC/saison_id/2013", "year": "2014", "season": "2013"} diff --git a/dbt/dbt_project.yml b/dbt/dbt_project.yml index 2bd2b126..e426ebf0 100644 --- a/dbt/dbt_project.yml +++ b/dbt/dbt_project.yml @@ -43,7 +43,7 @@ models: vars: competition_codes: [ 'ES1', 'GB1', 'L1', 'IT1', 'FR1', 'GR1', 'PO1', - 'BE1', 'UKR1', 'BE1', 'RU1', 'DK1', 'SC1', 'TR1', + 'BE1', 'EJPL', 'POBE', 'BPO4', 'UKR1', 'RU1', 'DK1', 'SC1', 'TR1', 'NL1', 'NLP', 'NLSC', 'BESC', 'DFB', 'POSU', 'POCP', 'CGB', 'UKRP', 'RUP', 'GBCS', 'SUC', 'DFL', 'CDR', 'RUSS', 'GRP', 'SFA', 'CIT', 'DKP', 'FRCH', 'UKRS', diff --git a/dbt/models/base/transfermarkt_scraper/base_national_teams.sql b/dbt/models/base/transfermarkt_scraper/base_national_teams.sql index 3088df4b..dd92a717 100644 --- a/dbt/models/base/transfermarkt_scraper/base_national_teams.sql +++ b/dbt/models/base/transfermarkt_scraper/base_national_teams.sql @@ -14,7 +14,10 @@ with select national_team_id, - json_extract_string(json_row, '$.name') as name, + coalesce( + nullif(json_extract_string(json_row, '$.name'), ''), + json_extract_string(json_row, '$.parent.country_name') + ) as name, json_extract_string(json_row, '$.code') as team_code, json_extract_string(json_row, '$.parent.country_id') as country_id, case diff --git a/dbt/models/curated/models.yml b/dbt/models/curated/models.yml index bcd3be28..da0dc81e 100644 --- a/dbt/models/curated/models.yml +++ b/dbt/models/curated/models.yml @@ -188,7 +188,7 @@ models: - player_club_domestic_competition_id - dbt_expectations.expect_table_row_count_to_be_between: min_value: 430000 - max_value: 650000 + max_value: 850000 columns: - name: player_id tests: diff --git a/dbt/tests/expected_number_of_first_tier_leagues.sql b/dbt/tests/expected_number_of_first_tier_leagues.sql index 872a02bf..03034f8c 100644 --- a/dbt/tests/expected_number_of_first_tier_leagues.sql +++ b/dbt/tests/expected_number_of_first_tier_leagues.sql @@ -1,9 +1,10 @@ {# - Verify the total number of first-tier leagues matches the expected count. - Should be updated when new leagues are added to competitions.json. + Verify the total number of first-tier leagues is within the expected range. + COL1 (Colombia Liga BetPlay - Finalización) is seasonally inactive in Jun-Aug, + so the count fluctuates between 31 (off-season) and 32 (full season). #} select count(*) as league_count from {{ ref('competitions') }} where sub_type = 'first_tier' -having count(*) != 32 +having count(*) not between 31 and 32 diff --git a/docs/developer-guide.md b/docs/developer-guide.md index 27c9534b..d0a7e61a 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -73,6 +73,22 @@ This populates `data/raw/transfermarkt-api` with the collected data. You can als cd scripts/acquiring && python transfermarkt-api.py --season 2024 ``` +### Adding or extending competitions + +Which competitions are scraped is controlled by the `competition_ids` list in [`config.yml`](../config.yml). To add a competition, append its Transfermarkt competition ID (the last path segment of its URL, e.g. `GB1`) to that list. + +**Competitions not in Transfermarkt's confederation hierarchy** (such as domestic play-offs) will never appear in the output of `tfmkt competitions`, even if their ID is in `config.yml`. For these, add a hand-crafted JSONL record to [`data/supplemental_competitions.json`](../data/supplemental_competitions.json). Records in that file are merged into `data/competitions.json` on every `acquire_local --asset competitions` run, so they survive re-acquisition. `data/competitions.json` itself is a generated file — do not edit it directly. + +When crafting a supplemental record, match the shape of existing entries in `data/competitions.json` and set `competition_type` to a value that maps to the correct URL scheme in `tfmkt/common.py`: + +| `competition_type` | URL generated by the scraper | +|----------------------|-----------------------------------------------------------| +| `first_tier` | `.../startseite/wettbewerb/{ID}/plus/0?saison_id={year}` | +| `domestic_cup` / `domestic_super_cup` | `.../startseite/pokalwettbewerb/{ID}?saison_id={year}` | +| anything else | `.../startseite/wettbewerb/{ID}?saison_id={year}` | + +Play-offs and other non-standard competitions should use `play_off` (or any value not in the table above) to get the plain `wettbewerb` URL. + ## Data preparation "Preparing" is the process of transforming raw data into a high-quality dataset. This is done in SQL using [dbt](https://docs.getdbt.com/) and [DuckDB](https://duckdb.org/). diff --git a/docs/plans/314-not-null-transfers-player-name.md b/docs/plans/314-not-null-transfers-player-name.md deleted file mode 100644 index 1e52aa5b..00000000 --- a/docs/plans/314-not-null-transfers-player-name.md +++ /dev/null @@ -1,77 +0,0 @@ -# Fix #314: Inconsistent transfer data (`not_null_transfers_player_name`) - -## Context - -The `not_null_transfers_player_name` dbt test fails intermittently because: -- Transfer data comes from the **API** (`base_transfers`) — contains `player_id` but no player name -- Player names come from the **scraper** (`base_players` → `players`) — only covers first-tier leagues -- `transfers.sql` LEFT JOINs these two; when a player_id from the API has no match in the scraper data, `player_name` is NULL → test fails - -**Key discovery:** The raw API JSON includes a `response.url` field (e.g., `/jordy-clasie/transfers/spieler/104223`) from which we can derive a fallback player name. - -## Approach - -Extract a fallback `player_name` from the API data in `base_transfers`, then use `COALESCE` in the curated `transfers` model to prefer the scraper name but fall back to the API-derived name. - -## Changes - -### 1. `dbt/models/base/transfermarkt_api/base_transfers.sql` - -**`json_transfers` CTE** — add `response_url` extraction: -```sql -json_extract_string(json_row, '$.response.url') as response_url, -``` - -**`unnested` CTE** — carry `response_url` through: -```sql -select player_id, response_url, season, filename, unnest(...) as transfer -``` - -**`transfers_data` CTE** — derive `player_name` from URL slug: -```sql -nullif( - array_to_string( - list_transform( - string_split(replace(split_part(response_url, '/', 2), '-', ' '), ' '), - x -> upper(x[1]) || x[2:] - ), - ' ' - ), - '' -) as player_name, -``` -This converts `jordy-clasie` → `Jordy Clasie`. Verified working on DuckDB 1.4.4. - -**`processed_transfers` CTE** — pass `player_name` through in the select list. - -**Final SELECT** — add `player_name` to the output columns. - -### 2. `dbt/models/curated/transfers.sql` - -Change line 25 from: -```sql -players_cte.player_name -``` -to: -```sql -coalesce(players_cte.player_name, transfers_cte.player_name) as player_name -``` - -### 3. No other changes needed - -- `models.yml` — the `not_null` test stays as-is (it's the acceptance criterion) -- `players.sql` — unchanged -- No new tests needed - -## Verification - -```sh -cd dbt && ../.venv/bin/dbt build -s base_transfers transfers --target dev -``` - -Then confirm zero NULLs: -```sh -.venv/bin/python -c "import duckdb; print(duckdb.connect('dbt/duck.db').sql('SELECT COUNT(*) - COUNT(player_name) as null_names FROM dev.transfers').fetchall())" -``` - -Expected: `[(0,)]` diff --git a/docs/plans/321-missing-clubs-competitions.md b/docs/plans/321-missing-clubs-competitions.md deleted file mode 100644 index 00cce558..00000000 --- a/docs/plans/321-missing-clubs-competitions.md +++ /dev/null @@ -1,75 +0,0 @@ -# Fix #321: Missing clubs in `clubs.csv` and discrepancy in `competitions.json` - -## Context - -Clubs from several European countries (Switzerland, Austria, Croatia, Poland, Czech Republic, etc.) are missing from `clubs.csv` because their domestic competitions are not listed in `data/competitions.json`. This file drives the scraper — only competitions listed there get their clubs/games/players scraped. The upstream scraper source (`transfermarkt-scraper/samples/competitions.json`) has 62 entries, but local has only 44. - -## Changes - -### 1. Add 20 missing competitions to `data/competitions.json` - -Append the following competition entries (sourced from the upstream scraper file) to the end of the file, before the international competitions block: - -| Code | Country | Type | -|------|---------|------| -| KR1 | Croatia | first_tier | -| A1 | Austria | first_tier | -| ofb | Austria | domestic_cup | -| ZYP1 | Cyprus | first_tier | -| CYSC | Cyprus | domestic_super_cup | -| NO1 | Norway | first_tier | -| NOPO | Norway | domestic_cup | -| UNG1 | Hungary | first_tier | -| SE1 | Sweden | first_tier | -| SEC | Sweden | domestic_cup | -| RO1 | Romania | first_tier | -| ROMS | Romania | domestic_super_cup | -| SER1 | Serbia | first_tier | -| PL1 | Poland | first_tier | -| POPU | Poland | domestic_cup | -| PLSC | Poland | domestic_super_cup | -| C1 | Switzerland | first_tier | -| SCC | Switzerland | domestic_cup | -| TS1 | Czech Republic | first_tier | -| TSP | Czech Republic | domestic_cup | - -Result: 64 entries (44 existing + 20 new). Existing entries (including FAC and UCOL) are preserved. - -### 2. Update `dbt/dbt_project.yml` — `competition_codes` variable - -- Add the 20 new competition codes: `KR1`, `A1`, `ofb`, `ZYP1`, `CYSC`, `NO1`, `NOPO`, `UNG1`, `SE1`, `SEC`, `RO1`, `ROMS`, `SER1`, `PL1`, `POPU`, `PLSC`, `C1`, `SCC`, `TS1`, `TSP` -- Add `UCOL` (already in competitions.json but was missing from this list) -- Remove duplicate `BE1` entry - -This variable is used by `base_appearances.sql` to filter appearances. - -### 3. Update `dbt/models/curated/models.yml` — test thresholds - -Widen the row count test bounds to accommodate additional data from the new competitions. These are upper-bound adjustments only (min stays the same) since we don't have the scraped data yet: - -| Model | Current max | New max | -|-------|------------|---------| -| competitions | 45 | 70 | -| clubs | 480 | 700 | -| players | 38000 | 48000 | -| games | 82000 | 115000 | -| appearances | 2000000 | 2800000 | -| club_games | 176000 | 240000 | -| game_events | 1500000 | 2100000 | -| player_valuations | 550000 | 750000 | - -## Files to modify - -- `data/competitions.json` — add 20 competition entries -- `dbt/dbt_project.yml` — update `competition_codes` list -- `dbt/models/curated/models.yml` — widen row count thresholds - -## Verification - -After making these changes: -1. Run `cd dbt && ../.venv/bin/dbt build -s base_competitions competitions --target dev` to verify the competitions model builds with the new entries -2. Full verification requires re-running the scraper (`just acquire_local`) to fetch data for the new competitions, then `just prepare_local` to rebuild all models - -## Note - -These code changes alone won't populate the missing clubs — the scraper must be re-run against the updated `competitions.json` to actually fetch raw data for the new competitions. But this sets up the configuration so the next scraper run will include them. diff --git a/scripts/acquiring/transfermarkt-scraper.py b/scripts/acquiring/transfermarkt-scraper.py index baab0843..931d98f5 100644 --- a/scripts/acquiring/transfermarkt-scraper.py +++ b/scripts/acquiring/transfermarkt-scraper.py @@ -98,7 +98,7 @@ def all(cls): # Explicit casts prevent type-mismatch errors in UNION ALL BY NAME when # an existing file has all-null values and a new scrape has actual strings. VARCHAR_CASTS = { - 'clubs': ['coach_name', 'total_market_value', 'league_position'], + 'clubs': ['coach_name', 'coach_href', 'total_market_value', 'league_position'], 'games': ['home_club_position', 'away_club_position'], 'players': ['day_of_last_contract_extension', 'current_market_value', 'highest_market_value'], 'national_team_players': ['day_of_last_contract_extension', 'current_market_value', 'highest_market_value'], @@ -350,6 +350,23 @@ def acquire_competitions(): logging.info(f"Scraped {len(lines)} competitions, kept {len(filtered)} matching existing config") + # Merge supplemental competitions (play-offs etc. not in Transfermarkt's confederation hierarchy) + supp_file = pathlib.Path("data/supplemental_competitions.json") + if supp_file.exists(): + supp_ids_seen = set() + existing_ids = {_competition_id_from_href(json.loads(l).get('href', '')) for l in filtered} + with open(str(supp_file)) as sf: + for line in sf: + line = line.strip() + if not line: + continue + record = json.loads(line) + comp_id = _competition_id_from_href(record.get('href', '')) + if comp_id in allowed_ids and comp_id not in existing_ids and comp_id not in supp_ids_seen: + filtered.append(line) + supp_ids_seen.add(comp_id) + logging.info(f"Merged {len(supp_ids_seen)} supplemental competitions") + with open(str(output_file), 'w') as f: f.write('\n'.join(filtered)) logging.info(f"Wrote {len(filtered)} competitions to {output_file}")