41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
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)
|