Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python将xml文件转换为JSON?_Python_Xml_Json_Xml Serialization - Fatal编程技术网

如何使用python将xml文件转换为JSON?

如何使用python将xml文件转换为JSON?,python,xml,json,xml-serialization,Python,Xml,Json,Xml Serialization,我有一个XML文件,我想用python将其转换为JSON文件,但它的nt适合我 <?xml version="1.0"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> &l

我有一个XML文件,我想用python将其转换为JSON文件,但它的nt适合我

<?xml version="1.0"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>

它给了我一个错误:类型错误:0x00C49DD0处的xml.etree.ElementTree.ElementTree对象不可JSON序列化。

这可能就是您要查找的:

导入xml2json
s='''
托弗
贾尼
提醒
这个周末别忘了我!
'''
打印xml2json.xml2json
另一个选择是(完全公开:我写的)。它可以帮助您将XML转换为dict+list+string结构,如下所示。它是基于XML的,因此速度非常快,不需要在内存中加载整个XML树

拥有该数据结构后,可以将其序列化为JSON:

import xmltodict, json

o = xmltodict.parse('<e> <a>text</a> <a>text</a> </e>')
json.dumps(o) # '{"e": {"a": ["text", "text"]}}'
导入xmltodict,json
o=xmltodict.parse('text-text')
json.dumps(o)#{“e”:{“a”:[“text”,“text”]}
您可以尝试使用。相同的代码是

from xmljson import badgerfish as bf
from xml.etree.ElementTree import fromstring
s = '''<?xml version="1.0"?>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Reminder</heading>
   <body>Don't forget me this weekend!</body>
</note>'''
json.dumps(bf.data(fromstring(s)))
从xmljson导入badgerfish作为bf
从xml.etree.ElementTree导入fromstring
s='''
托弗
贾尼
提醒
这个周末别忘了我!
'''
json.dumps(bf.data(fromstring)))

请参阅。它支持模式,例如类型定义。

您必须了解元素树对象不是XML文件的完整表示,它只提供访问XML文件任何部分的方法。使用xml2json模块的答案将满足您的需要。
import xmltodict, json

o = xmltodict.parse('<e> <a>text</a> <a>text</a> </e>')
json.dumps(o) # '{"e": {"a": ["text", "text"]}}'
from xmljson import badgerfish as bf
from xml.etree.ElementTree import fromstring
s = '''<?xml version="1.0"?>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Reminder</heading>
   <body>Don't forget me this weekend!</body>
</note>'''
json.dumps(bf.data(fromstring(s)))