python解析xml存入字典_Python将XML同级放入字典

我有一个如下所示的xml:

1

some text

some text

1

a

a

2

b

b

3

c

c

2

some text

some text

1

aa

aa

2

bb

bb

3

cc

cc

3

some text

some text

1

aaa

aaa

2

bbb

bbb

3

ccc

ccc

我正试图将这个xml转换成一个名为“G”的嵌套字典:

^{pr2}$

我的代码可以很好地得到所有在“G”下的元素,例如G1、G2等等,但是对于GP,我要么只得到一条记录,要么我得到所有的它们,但是它重复了几次,要么我在字典中的一个GP下得到了所有9个GP元素。这是我的代码:f = 'path to file'

tree = ET.parse(f)

root = tree.getroot()

self.tree = tree

self.root = root

gs = len(self.tree.getiterator('G'))

g = {}

for i in range(0, gs):

d = {}

for elem in self.tree.getiterator('G')[i]:

if elem.text == "\n " and elem.tag not in ['GP']:

dd = {}

for parent in elem:

if parent.text == "\n ":

ddd = {}

for child in parent:

ddd[child.tag] = child.text

dd[parent.tag] = ddd

else:

dd[parent.tag] = parent.text

d[elem.tag] = dd

else:

d[elem.tag] = elem.text

g[i+1] = d

# Build GP

count = 0

gp = {}

for elem in self.tree.getiterator('GP'):

d = {}

for parent in elem:

if parent.text == "\n ":

dd = {}

for child in parent:

dd[child.tag] = child.text

d[parent.tag] = dd

else:

d[parent.tag] = parent.text

count += 1

gp[count] = d

g["GP"] = gp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值