亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 python 處理 JSON 嵌套列表

如何使用 python 處理 JSON 嵌套列表

慕神8447489 2022-03-09 20:11:41
我正在使用 mask rcnn 訓練數據集。我在 labelIMG 工具 ( https://github.com/tzutalin/labelImg ) 上注釋了大約 1500 張圖像。長話短說,我需要從 JSON 文件中的分段列表中獲取 x 和 y 坐標的值。如何使用 Python 編程訪問列表?或者有沒有其他方法可以在掩碼 Rcnn 上使用 .xml 注釋。這是從 VOC PASCAL 轉換為 COCO 的數據集。Xml 被轉換為 JSON 語法。代碼import jsonimport codecsdata = json.load(codecs.open('example.json', 'r', 'utf-8-sig'))for i in data['annotations']:    print(data['annotations'][0]) #want to output segmentation values in JSON filesJSON文件{    "images": [        {          "file_name": "out538.png",          "height": 720,          "id": 20180000001,          "width": 1280        },        {          "file_name": "3 0751.jpg",          "height": 720,          "id": 20180000002,          "width": 1280        }    ],    "type": "instances",    "annotations": [        {            "segmentation": [            [                935,                372,                935,                554,                1195,                554,                1195,                372            ]            ],            "area": 47320,            "iscrowd": 0,            "ignore": 0,            "image_id": 20180000001,            "bbox": [            935,            372,            260,            182            ],            "category_id": 1,            "id": 1        },        {            "segmentation": [            [                743,                317,                743,                480,                962,                480,                962,                317            ]            ],            "area": 35697,            "iscrowd": 0,            "ignore": 0,            "image_id": 20180000001,            "bbox": [            743,            317,            219,            163            ],            "category_id": 1,            "id": 2        }    ],我想要分段列表的值:例如 935、372、935、554、1195、554、1195、372 但我得到的只是錯誤“列表索引必須是整數或切片,而不是字典”
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

循環中的i變量將是一個字典,因為它是一個字典列表。為了訪問該列表,您需要執行以下操作:for i in data['annotations']:annotationssegmentation


for annotation in data['annotations']:

    segmentation = annotation['segmentation']

    actual_segment_data = segmentation[0]

最后一行代碼是必要的,因為segmentation它是列表中的列表。


這應該返回以下內容:[935, 372, 935, 554, 1195, 554, 1195, 372].


查看完整回答
反對 回復 2022-03-09
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

JSON 是 dict of ...dicts 的 dict 所以你需要正確的鍵來導航到段。

annotations[0]['segmentation']

應該給你名單


查看完整回答
反對 回復 2022-03-09
  • 2 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號