разобрать файл json из VoTT - PullRequest
0 голосов
/ 04 марта 2019

Я хотел бы проанализировать json, сгенерированный vott от Microsoft .Цель состоит в том, чтобы использовать эти данные с labelimg , который более прост в использовании (его XML-файл легче генерировать, чем json из vott).

Вот пример этого файла:

{
	"frames": {
		"2019_01_16_13_13_54.png": [
			{
				"x1": 918.9060308555399,
				"y1": 308,
				"x2": 1017.81206171108,
				"y2": 388.44776119402987,
				"width": 1640,
				"height": 1232,
				"box": {
					"x1": 918.9060308555399,
					"y1": 308,
					"x2": 1017.81206171108,
					"y2": 388.44776119402987
				},
				"UID": "ff641453",
				"id": 0,
				"type": "Rectangle",
				"tags": [
					"oiseau"
				],
				"name": 1
			},
			{
				"x1": 263.36605890603087,
				"y1": 570.0298507462687,
				"x2": 396.7741935483871,
				"y2": 712.5373134328359,
				"width": 1640,
				"height": 1232,
				"box": {
					"x1": 263.36605890603087,
					"y1": 570.0298507462687,
					"x2": 396.7741935483871,
					"y2": 712.5373134328359
				},
				"UID": "877487f8",
				"id": 1,
				"type": "Rectangle",
				"tags": [
					"toto"
				],
				"name": 2
			}
		],
		"2019_01_16_13_19_06.png": [
			{
				"x1": 854.5021037868163,
				"y1": 314.8955223880597,
				"x2": 935.0070126227209,
				"y2": 422.92537313432839,
				"width": 1640,
				"height": 1232,
				"box": {
					"x1": 854.5021037868163,
					"y1": 314.8955223880597,
					"x2": 935.0070126227209,
					"y2": 422.92537313432839
				},
				"UID": "7d75a982",
				"id": 2,
				"type": "Rectangle",
				"tags": [
					"bille"
				],
				"name": 1
			},
			{
				"x1": 1247.8260869565218,

Чтобы разобрать этот файл, кажется, что одним хорошим решением является использование функции pandas json_normalize () .Но за исключением первого уровня «кадров» я не могу прочитать уровень каждого изображения.

импорт json из pandas.io.json import json_normalize

with open('Images.json', 'r') as f:
   print(type(f))
   jp = json.loads(f.read()) 
df = json_normalize(jp, 'frames')

, но с df = json_normalize (jp, 'frames', [{'x1', 'y1', 'x2', 'y2'}]), у меня ошибка "Ошибка типа: элемент последовательности 0: ожидаемый экземпляр str, набор найден".

Эта ссылка дает довольно хорошее объяснение по этому вопросу,но пока не может прогрессировать.

Не могли бы вы мне помочь?Спасибо тебе

...