Разбивайте массив объектов JSON до тех пор, пока длина каждого элемента массива не станет меньше статического порога.Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Разбивайте массив объектов JSON до тех пор, пока длина каждого элемента массива не станет меньше статического порога.

Сообщение Гость »


У меня есть список dict, который имеет согласованную структуру, где каждый dict имеет список целых чисел . Однако мне нужно убедиться, что каждый dict имеет размер в байтах (при преобразовании в строку JSON) меньше указанного порога.

Если dict превышает этот порог в байтах, мне нужно разбить на фрагменты целочисленный список этого dict.

Попытка:
импортировать JSON полезная нагрузка: список[dict] = [ {"данные1": [1,2,3,4]}, {"данные2": [8,9,10]}, {"данные3": [1,2,3,4,5,6,7]} ] # Максимальный размер в байтах, который мы можем разрешить. Это статический и жесткий предел, который не является переменным. MAX_SIZE: целое = 25 защита check_and_chunk(arr: list): защита check_size_bytes (элемент): вернуть True, если len(json.dumps(item).encode("utf-8")) > MAX_SIZE иначе False def chunk(item, num_chunks: int=2): для i в диапазоне (0, len(item), num_chunks): дать элемент[i:i+num_chunks] # Сначала проверьте, меньше ли вся полезная нагрузка, чем MAX_SIZE если нет, check_size_bytes(arr): возвращение # Давайте найдем маленькие и слишком большие предметы соответственно маленький, большой = [], [] # Найдите в полезной нагрузке индексы, которые слишком велики big_idx: list = [i for i, j in enumerate(list(map(check_size_bytes, arr))) if j] # Добавляем эти элементы соответственно в соответствующие списки item_append = (small.append, big.append) для i элемент в перечислении (arr): item_append[i в наборе(big_idx)](предмет) # Изменяйте большие элементы, пока они не станут достаточно маленькими, чтобы их можно было переместить в список small_items для меня в большом: распечатать(я) # Вот здесь я не уверен, как лучше поступить. Я хотел бы по существу разделить большие словари на «большой» список так, чтобы он был достаточно маленьким, чтобы каждый элемент находился в «маленьком» результате.
Пример возможного желаемого результата:
полезная нагрузка: список[dict] = [ {"данные1": [1,2,3,4]}, {"данные2": [8,9,10]}, {"данные3": [1,2,3,4]}, {"данные3": [5,6,7]} ]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»