1. 程式人生 > 程式設計 >python解析多層json操作示例

python解析多層json操作示例

本文例項講述了python解析多層json操作。分享給大家供大家參考,具體如下:

原始檔案內容:

{
  "MaskPolygonItem": {
    "0": {
      "BoundingBox": "354.105 221.957 379.764 96.2241","label": "Number","labelNum": 0,"polygon": "3,6"
    }
  },"channels": 3,"height": 1080,"width": 1920
}

修改並儲存程式碼

#coding=utf-8 
import os
import json
#獲取目標資料夾的路徑
filedir = r'J:\NumberData\mrcnnHik\test'
#獲取資料夾中的檔名稱列表 
filenames=os.listdir(filedir)
#遍歷檔名
for filename in filenames:
  filepath = filedir+'/'+filename
  # print(filepath)
  after = []
  # 開啟檔案取出資料並修改,然後存入變數
  with open(filepath,'r') as f:
    data = json.load(f)
    mask=data["MaskPolygonItem"]
    for zidian in mask:
      print(type(zidian))
      mask[zidian]["polygon"] = '354 221,355 310,729 318,733 236'
    after = data
  # 開啟檔案並覆蓋寫入修改後內容
  with open(filepath,'w') as f:
    #結構化輸出
    data = json.dump(after,f,sort_keys=True,indent=4,separators=(',',': '))

修改之後內容(僅修改了polygon)

{
  "MaskPolygonItem": {
    "0": {
      "BoundingBox": "354.105 221.957 379.764 96.2241","polygon": "354 221,733 236"
    }
  },"width": 1920
}

PS:這裡再為大家推薦幾款比較實用的json線上工具供大家參考使用:

線上JSON程式碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON線上格式化工具:
http://tools.jb51.net/code/jsonformat

線上XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson

json程式碼線上格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat

線上json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans

更多Python相關內容感興趣的讀者可檢視本站專題:《Python操作json技巧總結》、《Python編碼操作技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。