Я хотел бы проанализировать 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, набор найден".
Эта ссылка дает довольно хорошее объяснение по этому вопросу,но пока не может прогрессировать.
Не могли бы вы мне помочь?Спасибо тебе