python xml转换键值对_将xml转换为python dict

I'm trying to make a dict class to process an xml but get stuck, I really run out of ideas. If someone could guide on this subject would be great.

code developed so far:

class XMLResponse(dict):

def __init__(self, xml):

self.result = True

self.message = ''

pass

def __setattr__(self, name, val):

self[name] = val

def __getattr__(self, name):

if name in self:

return self[name]

return None

message="<?xml version="1.0"?>ToveJaniReminderDon't forget me this weekend!"

XMLResponse(message)

解决方案

You can make use of xmltodict module:

import xmltodict

message = """<?xml version="1.0"?>ToveJaniReminderDon't forget me this weekend!"""

print xmltodict.parse(message)['note']

which produces an OrderedDict:

OrderedDict([(u'to', u'Tove'), (u'from', u'Jani'), (u'heading', u'Reminder'), (u'body', u"Don't forget me this weekend!")])

which can be converted to dict if order doesn't matter:

print dict(xmltodict.parse(message)['note'])

Prints:

{u'body': u"Don't forget me this weekend!", u'to': u'Tove', u'from': u'Jani', u'heading': u'Reminder'}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值