Запись байтов в файл JSON [дубликат]Python

Программы на Python
Anonymous
Запись байтов в файл JSON [дубликат]

Сообщение Anonymous »

Чтобы написать файл JSON для набора данных в формате COCO, у меня есть маска, закодированная в RLE, с типом (количеством) == байт.
Чтобы записать текст в файл JSON, я использую json. дампы(). Это работает для строк, целых чисел и чисел с плавающей запятой в словаре, но не для элемента bytes.

Код: Выделить всё

TypeError: Object of type ndarray is not JSON serializable
Дикт может выглядеть так:

Код: Выделить всё

annotation =
{'id': 1,
'image_id': '0002',
'category_id': 40,
'segmentation': {'size': [480, 640],
'counts': b'^cb45f>6K5J6J501O001O1O002N1O2N1O1O00O1000001O000000000000000000000000000O10000010O001O001O000000000000000000000001O003M5K4L4K5L5K4L4LQmj3'},
'area': 1923.0,
'bbox': [312, 347, 64, 37],
'iscrowd': 0}
где значение в «counts» — это тип байтов.
Есть способ решить проблему путем преобразования байтов в строку, применив:

Код: Выделить всё

annotation['segmentation']['counts'] = str(annotation['segmentation']['counts'])
Но вот в чем проблема: файл JSON будет выглядеть так (обратите внимание, что байты заключены в кавычки («»)):

Код: Выделить всё

{
"id": 1,
"image_id": "0002",
"category_id": 40,
"segmentation": {
"size": [
480,
640
],
"counts": "b'^cb45f>6K5J6J501O001O1O002N1O2N1O1O00O1000001O000000000000000000000000000O10000010O001O001O000000000000000000000001O003M5K4L4K5L5K4L4LQmj3'"
},
"area": 1923.0,
"bbox": [
312,
347,
64,
37
],
"iscrowd": 0
}
Формату COCO нужна такая форма (без кавычек вокруг байтов):

Код: Выделить всё

{
"id": 1,
"image_id": "0002",
"category_id": 40,
"segmentation": {
"size": [
480,
640
],
"counts": b'^cb45f>6K5J6J501O001O1O002N1O2N1O1O00O1000001O000000000000000000000000000O10000010O001O001O000000000000000000000001O003M5K4L4K5L5K4L4LQmj3'
},
"area": 1923.0,
"bbox": [
312,
347,
64,
37
],
"iscrowd": 0
}
Есть ли способ записать файл JSON в правильном формате?


Подробнее здесь: https://stackoverflow.com/questions/787 ... -json-file

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