Разбивайте массив объектов JSON до тех пор, пока длина каждого элемента массива не станет меньше статического порога. ⇐ 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]} ]
У меня есть список 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]} ]
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение