RAG_AIEXP_01 / table_info.py
MrSimple07's picture
a new chunking with 3 000 size for all types of data
c0bcb11
import json
import os
from pathlib import Path
from collections import defaultdict
def analyze_json_tables(folder_path):
"""
Анализирует JSON файлы и подсчитывает количество таблиц в каждом документе
"""
# Словари для хранения статистики
doc_stats = defaultdict(lambda: {'tables': 0, 'chars': 0})
total_tables = 0
total_chars = 0
# Получаем все JSON файлы в папке
json_files = list(Path(folder_path).glob('*.json'))
if not json_files:
print(f"Не найдено JSON файлов в папке: {folder_path}")
return
# Обрабатываем каждый файл
for json_file in json_files:
try:
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
# Получаем имя документа
doc_name = data.get('document', json_file.stem)
# Подсчитываем таблицы
if 'sheets' in data and isinstance(data['sheets'], list):
num_tables = len(data['sheets'])
# Подсчитываем символы (примерный размер JSON)
json_str = json.dumps(data, ensure_ascii=False)
num_chars = len(json_str)
# Обновляем статистику
doc_stats[doc_name]['tables'] += num_tables
doc_stats[doc_name]['chars'] += num_chars
total_tables += num_tables
total_chars += num_chars
except Exception as e:
print(f"Ошибка при обработке файла {json_file.name}: {e}")
# Выводим результаты
print(f"\nВсего таблиц добавлено: {total_tables}")
print(f"Общий размер: {total_chars:,} символов".replace(',', ' '))
if total_tables > 0:
avg_size = total_chars // total_tables
print(f"Средний размер таблицы: {avg_size:,} символов".replace(',', ' '))
print("\nПо документам:")
# Сортируем по имени документа
for doc_name in sorted(doc_stats.keys()):
stats = doc_stats[doc_name]
print(f"• {doc_name}: {stats['tables']} таблиц, {stats['chars']:,} символов".replace(',', ' '))
# Использование
if __name__ == "__main__":
# Укажите путь к папке с JSON файлами
folder_path = "Табличные данные_JSON" # Текущая папка, или укажите свой путь
# Можно также запросить путь у пользователя
# folder_path = input("Введите путь к папке с JSON файлами: ")
analyze_json_tables(folder_path)