Чтобы записать текст в файл 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}
Есть способ решить проблему путем преобразования байтов в строку, применив:
Код: Выделить всё
annotation['segmentation']['counts'] = str(annotation['segmentation']['counts'])
Код: Выделить всё
{
"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
}
Код: Выделить всё
{
"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
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... -json-file