日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将 .json 格式 转换成 .xml格式

發布時間:2023/12/31 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将 .json 格式 转换成 .xml格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 轉換前的 .json 格式文件的內容:
    • 2. 轉換后的 .xml 格式文件的內容:
    • 3. 將 .json 轉換成 .xml 格式代碼:

1. 轉換前的 .json 格式文件的內容:

json 是一個字典,具體內容看下面這個鏈接:
https://blog.csdn.net/weixin_42419002/article/details/100159408

2. 轉換后的 .xml 格式文件的內容:

<annotation><folder>VOC2012</folder> # 這些值訓練的時候不會被用到<filename>2007_000661.jpg</filename><source><database>The VOC2007 Database</database><annotation>PASCAL VOC2007</annotation><image>flickr</image></source><size><width>500</width> # 這個值需要改變<height>375</height> # 這個值需要改變<depth>3</depth></size><segmented>0</segmented><object><name>sofa</name> # 這個值需要改變<pose>Unspecified</pose><truncated>1</truncated><difficult>0</difficult><bndbox><xmin>119</xmin> # 這個值需要改變<ymin>177</ymin> # 這個值需要改變<xmax>331</xmax> # 這個值需要改變<ymax>278</ymax> # 這個值需要改變</bndbox></object><object><name>chair</name> # 這個值需要改變<pose>Unspecified</pose><truncated>1</truncated><difficult>0</difficult><bndbox><xmin>133</xmin> # 這個值需要改變<ymin>159</ymin> # 這個值需要改變<xmax>179</xmax> # 這個值需要改變<ymax>197</ymax> # 這個值需要改變</bndbox></object> </annotation>

3. 將 .json 轉換成 .xml 格式代碼:

import os import json from lxml import etree as ET from xml.dom import minidomdef edit_xml(objects, id, dir):save_xml_path = os.path.join(dir, "%s.xml" % id) # xmlroot = ET.Element("annotation")# root.set("version", "1.0") folder = ET.SubElement(root, "folder")folder.text = "none"filename = ET.SubElement(root, "filename")filename.text = "none"source = ET.SubElement(root, "source")source.text = "201908"owner = ET.SubElement(root, "owner")owner.text = "YZN"size = ET.SubElement(root, "size")width = ET.SubElement(size, "width")width.text = str(2048)height = ET.SubElement(size, "height")height.text = str(2048)depth = ET.SubElement(size, "depth")depth.text = "3"segmented = ET.SubElement(root, "segmented")segmented.text = "0"for obj in objects: # object = ET.SubElement(root, "object")name = ET.SubElement(object, "name") # numbername.text = obj["category"]# meaning = ET.SubElement(object, "meaning") # name# meaning.text = inf_value[0]pose = ET.SubElement(object, "pose")pose.text = "Unspecified"truncated = ET.SubElement(object, "truncated")truncated.text = "0"difficult = ET.SubElement(object, "difficult")difficult.text = "0"bndbox = ET.SubElement(object, "bndbox")xmin = ET.SubElement(bndbox, "xmin")xmin.text = str(int(obj["bbox"]["xmin"]))ymin = ET.SubElement(bndbox, "ymin")ymin.text = str(int(obj["bbox"]["ymin"]))xmax = ET.SubElement(bndbox, "xmax")xmax.text = str(int(obj["bbox"]["xmax"]))ymax = ET.SubElement(bndbox, "ymax")ymax.text = str(int(obj["bbox"]["ymax"]))tree = ET.ElementTree(root)tree.write(save_xml_path, encoding="UTF-8", xml_declaration=True)root = ET.parse(save_xml_path) file_lines = minidom.parseString(ET.tostring(root, encoding="Utf-8")).toprettyxml(indent="\t") file_line = open(save_xml_path, "w", encoding="utf-8") file_line.write(file_lines)file_line.close()def getDirId(dir): # get the id list of id.pngnames = os.listdir(dir)ids = []for name in names:# path = os.path.join(dir, name)# img = cv2.imread(path)# w, h, c = img.shape# if name.endswith(".jpg") or name.endswith(".png"):# ids["%s" % name.split(".")[0]] = [w, h, c]ids.append(name.split(".")[0])return ids filedir = "annotations.json" annos = json.loads(open(filedir).read())trainIds = getDirId("Tinghua100K/images/train/") testIds = getDirId("Tinghua100K/images/test/")ids = annos["imgs"].keys() # all img ids in .json for id in ids:# json 中的ID圖片有待檢測目標,且該id圖片在 train文件夾中if len(annos["imgs"][id]["objects"]) > 0 and (id in trainIds) and :objects = annos["imgs"][id]["objects"]edit_xml(objects, id, dir = "xmlLabel/train")elif len(annos["imgs"][id]["objects"]) > 0 and (id in testIds):objects = annos["imgs"][id]["objects"]edit_xml(objects, id, dir = "xmlLabel/test")

總結

以上是生活随笔為你收集整理的将 .json 格式 转换成 .xml格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。