如何在Python中将XML转换为JSON?

如何在Python中将XML转换为JSON?,第1张

如何在Python中将XML转换为JSON?

Soviut对于lxml objectify的建议是好的。使用特殊子类化的simplejson,您可以将lxml对象化结果转换为json。

import simplejson as jsonimport lxmlclass objectJSonEnprer(json.JSONEnprer):  """A specialized JSON enprer that can handle simple lxml objectify types      >>> from lxml import objectify      >>> obj = objectify.fromstring("<Book><price>1.50</price><author>W. Shakespeare</author></Book>")  >>> objectJSonEnprer().enpre(obj)      '{"price": 1.5, "author": "W. Shakespeare"}'        """    def default(self,o):        if isinstance(o, lxml.objectify.IntElement): return int(o)        if isinstance(o, lxml.objectify.NumberElement) or isinstance(o, lxml.objectify.FloatElement): return float(o)        if isinstance(o, lxml.objectify.ObjectifiedDataElement): return str(o)        if hasattr(o, '__dict__'): #For objects with a __dict__, return the encoding of the __dict__ return o.__dict__        return json.JSONEnprer.default(self, o)

参阅文档字符串以获取用法示例,从本质上讲,您将lxml的结果传递

objectify
给的实例的enpre方法
objectJSONEnprer

请注意,Koen的观点在这里非常有效,以上解决方案仅适用于简单嵌套的xml,并且不包含根元素的名称。这可以解决。

我在以下要点中包含了该类:http :
//gist.github.com/345559



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5051271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存