diff --git a/pydantic_models/locations.py b/pydantic_models/locations.py index df006c1..7734fe3 100644 --- a/pydantic_models/locations.py +++ b/pydantic_models/locations.py @@ -1,25 +1,25 @@ -from pydantic import BaseModel +from pydantic import BaseModel, Field import json class RegionNames(BaseModel): - fullName: str - shortName: str - displayName: str - primaryDisplayName: str - secondaryDisplayName: str - lastSearchName: str + full_name: str = Field(alias='fullName') + short_name: str = Field(alias='shortName') + display_name: str = Field(alias='displayName') + primary_display_name: str = Field(alias='primaryDisplayName') + secondary_display_name: str = Field(alias='secondaryDisplayName') + last_search_name: str = Field(alias='lastSearchName') class EssId(BaseModel): - sourceName: str - sourceId: int + source_name: str = Field(alias='sourceName') + source_id: int = Field(alias='sourceId') class Country(BaseModel): name: str - isoCode2: str - isoCode3: str + iso_code2: str = Field(alias='isoCode2') + iso_code3: str = Field(alias='isoCode3') class HierarchyInfo(BaseModel): @@ -27,25 +27,25 @@ class HierarchyInfo(BaseModel): class Coordinates(BaseModel): - lat: float - long: float + latitude: float = Field(alias='lat') + longitude: float = Field(alias='long') class GaiaRegionResult(BaseModel): index: int - gaiaId: int + gaia_id: int = Field(alias='gaiaId') type: str - regionNames: RegionNames - essId: EssId + region_names: RegionNames = Field(alias='regionNames') + ess_id: EssId = Field(alias='essId') coordinates: Coordinates - hierarchyInfo: HierarchyInfo + hierarchy_info: HierarchyInfo = Field(alias='hierarchyInfo') class SearchResults(BaseModel): - q: str - rid: str - rc: str - sr: list[GaiaRegionResult] + query: str = Field(alias='q') + request_id: str = Field(alias='rid') + request_status: str = Field(alias='rc') + search_results: list[GaiaRegionResult] = Field(alias='sr') if __name__ == "__main__": @@ -53,5 +53,5 @@ if __name__ == "__main__": data = json.load(json_file) results = SearchResults(**data) print('\n'.join( - [result.regionNames.fullName for result in results.sr if result.type in ('CITY', 'NEIGHBORHOOD')]) + [result.region_names.full_name for result in results.search_results if result.type in ('CITY', 'NEIGHBORHOOD')]) )