1. Json讀寫方法
def parseFromFile(self, fname): """ Overwritten to read JSON files. """ f = open(fname, "r") return json.load(f)def serializeToFile(self, fname, annotations): """ Overwritten to write JSON files. """ f = open(fname, "w") json.dump(annotations, f, indent=4, separators=(',', ': '), sort_keys=True) f.write("/n")2. xml文件的工具包XML2Dict
將xml轉換成Python本地字典對象, 訪問子元素和字典常用方法類似,略有不同, 使用 “.”
注: 使用xml2dict庫,需要在本地項目添加 xml2dict.py, object_dict.py,下載鏈接
加載xml文件
from xml2dict import XML2Dictxml = XML2Dict()r = xml.parse("待處理文件名.xml") xml示例[voc2007格式]:
<annotation> <folder>VOC2007</folder> <filename>AL_00001.JPG</filename> <size> <width>800</width> <height>1160</height> <depth>3</depth> </size> <object> <name>l_faster</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>270</xmin> <ymin>376</ymin> <xmax>352</xmax> <ymax>503</ymax> </bndbox> </object> <object> <name>l_faster</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>262</xmin> <ymin>746</ymin> <xmax>355</xmax> <ymax>871</ymax> </bndbox> </object> <object> <name>r_faster</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>412</xmin> <ymin>376</ymin> <xmax>494</xmax> <ymax>486</ymax> </bndbox> </object> <object> <name>r_faster</name> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <xmin>411</xmin> <ymin>748</ymin> <xmax>493</xmax> <ymax>862</ymax> </bndbox> </object></annotation>
分析下這個文件的格式:
最外一層被<annotation></annotation>包圍
往里一層是:<file_name></file_name>,<size></size>,<object></object>,其中object是列表,包括name和bndbox,示例訪問annotation下級元素
# -*- coding: utf-8 -*-from xml2dict import XML2Dictxml = XML2Dict()r = xml.parse('Annotations/AL_00001.xml')for item in r.annotation: print itemprint '------------'for item in r.annotation.object: print item.name, item.bndbox.xmin, item.bndbox.xmax, item.bndbox.ymin, item.bndbox.ymax
新聞熱點
疑難解答