xml to json

def convert_xml_to_json_with_region_value(xml_path):
    # Parse the XML file
    tree = ET.parse(xml_path)
    root = tree.getroot()

    # Initialize a list to hold the converted data
    json_data = {"positive": []}

    # Iterate through the XML structure and extract relevant data
    for annotation in root.findall('.//Annotation'):
        # For each annotation, extract regions
        if annotation.attrib['Name'] != 'Layer 2':
            continue
        for region in annotation.findall('.//Region'):
            # Extracting the Value from the first attribute in region if available or defaulting to "name"
            region_value = next((attribute.get('Value') for attribute in region.findall('.//Attribute')), 'name')

            if region_value == 'name':

                #region_value = next((attribute.get('Text') for attribute in region.findall('.//RegionAttributeHeaders')), 'name')
                region_value = region.attrib['Text']
            print(region_value)
            # Extract vertices for each region
            vertices = []
            for vertex in region.findall('.//Vertex'):
                x = float(vertex.get('X'))
                y = float(vertex.get('Y'))
                vertices.append([x, y])

            # Add the region data to the json structure
            region_data = {
                "name": region_value,  # Using the extracted Value
                "vertices": vertices
            }
            json_data["positive"].append(region_data)

    return json_data

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值