49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
import json
|
|
|
|
def add_file_paths(data):
|
|
if not isinstance(data, dict):
|
|
return data
|
|
|
|
for country_slug, country_data in data.items():
|
|
if 'cities' in country_data:
|
|
for city_slug, city_data in country_data['cities'].items():
|
|
if 'circuits' in city_data:
|
|
for circuit_slug, circuit_data in city_data['circuits'].items():
|
|
if 'layouts' in circuit_data:
|
|
for layout_years, layout_data in circuit_data['layouts'].items():
|
|
layout_slug = layout_data.get('slug', layout_years)
|
|
|
|
# Generate filePaths dictionary
|
|
base_path = f"/{country_slug}/{city_slug}/{circuit_slug}/{layout_slug}"
|
|
layout_data['filePaths'] = {
|
|
"png": f"{base_path}.png",
|
|
"svg": f"{base_path}.svg",
|
|
"geojson": f"{base_path}.geo.json"
|
|
}
|
|
|
|
return data
|
|
|
|
def main():
|
|
try:
|
|
# Read the JSON file with UTF-8 encoding
|
|
with open('./circuits.json', 'r', encoding='utf-8') as file:
|
|
data = json.load(file)
|
|
|
|
# Process the data
|
|
updated_data = add_file_paths(data)
|
|
|
|
# Write the updated data back to the file with UTF-8 encoding and ensure_ascii=False
|
|
with open('./circuits-new.json', 'w', encoding='utf-8') as file:
|
|
json.dump(updated_data, file, indent=2, ensure_ascii=False)
|
|
|
|
print("Successfully added file paths to layouts")
|
|
|
|
except FileNotFoundError:
|
|
print("Error: circuits.json file not found")
|
|
except json.JSONDecodeError:
|
|
print("Error: Invalid JSON format in circuits.json")
|
|
except Exception as e:
|
|
print(f"An error occurred: {str(e)}")
|
|
|
|
if __name__ == "__main__":
|
|
main() |