import json
import os


def clear_string_values(data):
    """
    Рекурсивно очищает все строковые значения, оставляя только пустые кавычки (""),
    не изменяя значения None или другие типы данных.
    """
    if isinstance(data, str):
        return ""
    elif isinstance(data, list):
        return [clear_string_values(item) for item in data]
    elif isinstance(data, dict):
        return {key: clear_string_values(value) for key, value in data.items()}
    return data


def process_json_file(file_path):
    """
    Обрабатывает указанный JSON-файл, очищая строковые значения, и сохраняет результат
    в новый файл с суффиксом '_cleared'.
    """
    with open(file_path, 'r', encoding='utf-8') as file:
        data = json.load(file)

    # Очищаем все строковые значения
    cleared_data = clear_string_values(data)

    # Сохраняем результат в новый файл с суффиксом '_cleared'
    new_file_path = f"{os.path.splitext(file_path)[0]}_cleared.json"
    with open(new_file_path, 'w', encoding='utf-8') as new_file:
        json.dump(cleared_data, new_file, ensure_ascii=False, indent=4)

    print(f"Файл с очищенными данными сохранен как: {new_file_path}")


# Укажите путь к вашему JSON-файлу
file_path = 'E:\code\kvant.app\FS_primer.json'
process_json_file(file_path)
