Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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/0/xml/15.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
在Python3中解析循环中的XML数据以创建多个对象_Python_Xml_Python 3.x - Fatal编程技术网

在Python3中解析循环中的XML数据以创建多个对象

在Python3中解析循环中的XML数据以创建多个对象,python,xml,python-3.x,Python,Xml,Python 3.x,我有以下XML结构: <celestialBodies> <stars> <star> <item name="Name">Sun</item> <item name="Distance from the Earth">100000</item> <item name="Size">9</item> <item

我有以下XML结构:

<celestialBodies>
<stars>
    <star>
        <item name="Name">Sun</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </star>
</stars>
<planets>  
    <planet>
        <item name="Name">Mercury</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Venus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Earth</item>
        <item name="Distance from the Earth">0</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Mars</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Jupiter</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Saturn</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Uranus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Neptune</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Pluto</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
</planets>  
</celestialBodies>
但是正如您所看到的,我不想自己硬编码planets,而是希望以一种好的方式从XML文件中获取数据。因此,与其说“水星”,不如说它应该穿过这棵树,将每个天体的值输入到变量中,然后创建对象

我无法理解的是XML阅读部分。无论我尝试了什么,我都无法循环通过级别将值读入变量。我已经尝试过BeautifulSoup、lxml和ET,但没有成功

一些试验:

   root = lxml.etree.fromstring('planet_info.xml')
   results = root.findall('planets')
   textnumbers = [r.find('planet/name').text for r in results]
   print(textnumbers)

每次都会产生错误。应该有一个简单的方法来做到这一点

有什么建议吗

编辑:因此,通过以下内容,我可以联系到这两个孩子,但仅此而已:

   # Get the data from the XML
   solarSystem = ET.parse('planet_info.xml')
   celestialBodies = solarSystem.getroot()
   for bodies in celestialBodies:
       print(bodies.tag, bodies.attrib)
输出:

stars {}
planets {}

如何在这些文件中循环并检索值?

这段代码使用etree很有效。缺少一行,该行仅返回
元素,这些元素的
名称
设置为某个值

import xml.etree.ElementTree as ET

root = ET.parse(PATH_TO_YOUR_FILE)
planets = root.findall('./planets/planet')

planets_list = []
for planet in planets:
        name = planet.find("./item[@name='Name']").text
        d = planet.find("./item[@name='Distance from the Earth']").text
        //...
        planets_list.append(Planet(name, d, ...)

从这里你应该可以自己解决剩下的问题。希望对您有所帮助。

使用etree编写的代码很有效。缺少一行,该行仅返回
元素,这些元素的
名称
设置为某个值

import xml.etree.ElementTree as ET

root = ET.parse(PATH_TO_YOUR_FILE)
planets = root.findall('./planets/planet')

planets_list = []
for planet in planets:
        name = planet.find("./item[@name='Name']").text
        d = planet.find("./item[@name='Distance from the Earth']").text
        //...
        planets_list.append(Planet(name, d, ...)

从这里你应该可以自己解决剩下的问题。希望有帮助。

首先,您可以找到行星和恒星元素,将它们添加到列表中并从中选择第一个值

import xml.etree.ElementTree as ET  
dump = ET.parse('planet_info.xml') 
root = dump.getroot()  
planet_name = star_name = planet_list = []  
for content in root:
    planet_name = content.findall("planet")
    star_name = content.findall("star")
    if planet_name:
        for planet in planet_name:
             planet_list.append(Planet(planet[0].text, planet[1].text, etc)
    elif star_name:
        for star in star_name:
            planet_list.append(Planet(star[0].text, star[1].text, etc)
    else:
        print("Nothing")

首先,您可以找到行星和恒星元素,将它们添加到列表中并从中选择第一个值

import xml.etree.ElementTree as ET  
dump = ET.parse('planet_info.xml') 
root = dump.getroot()  
planet_name = star_name = planet_list = []  
for content in root:
    planet_name = content.findall("planet")
    star_name = content.findall("star")
    if planet_name:
        for planet in planet_name:
             planet_list.append(Planet(planet[0].text, planet[1].text, etc)
    elif star_name:
        for star in star_name:
            planet_list.append(Planet(star[0].text, star[1].text, etc)
    else:
        print("Nothing")
这里有一个简单的方法来迭代该数据结构。为了保持代码的自包含性,我直接从字符串而不是从文件中读取XML

import xml.etree.ElementTree as ET

data = '''\
<?xml version="1.0"?>
<celestialBodies>
<stars>
    <star>
        <item name="Name">Sun</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </star>
</stars>
<planets>  
    <planet>
        <item name="Name">Mercury</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Venus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Earth</item>
        <item name="Distance from the Earth">0</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Mars</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Jupiter</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Saturn</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Uranus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Neptune</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Pluto</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
</planets>  
</celestialBodies>
'''

root = ET.fromstring(data)

for kind in root:
    print(kind.tag)
    for child in kind:
        print(' '*2, child.tag)
        for item in child:
            print(' '*4, '{!r}: {!r}'.format(item.attrib['name'], item.text))
        print()

这个变体将数据加载到包含两个列表的字典中,一个是恒星列表,一个是行星列表。这些列表中的每一个都包含该类别中每个主体的词典。我们可以使用
json
模块很好地打印数据

import xml.etree.ElementTree as ET
import json

root = ET.fromstring(data)

bodies = {}
for kind in root:
    bodies[kind.tag] = bodylist = []
    for child in kind:
        bodylist.append({item.attrib['name']: item.text for item in child})

print(json.dumps(bodies, indent=4))
输出

stars
   star
     'Name': 'Sun'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE'
     'Orbiting Time': '15'
     'Day Time': '12'

planets
   planet
     'Name': 'Mercury'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Venus'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Earth'
     'Distance from the Earth': '0'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Mars'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Jupiter'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Saturn'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Uranus'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Neptune'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Pluto'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'
 {
    "stars": [
        {
            "Name": "Sun",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE",
            "Orbiting Time": "15",
            "Day Time": "12"
        }
    ],
    "planets": [
        {
            "Name": "Mercury",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Venus",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Earth",
            "Distance from the Earth": "0",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Mars",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Jupiter",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Saturn",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Uranus",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Neptune",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Pluto",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        }
    ]
}
这里有一个简单的方法来迭代该数据结构。为了保持代码的自包含性,我直接从字符串而不是从文件中读取XML

import xml.etree.ElementTree as ET

data = '''\
<?xml version="1.0"?>
<celestialBodies>
<stars>
    <star>
        <item name="Name">Sun</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </star>
</stars>
<planets>  
    <planet>
        <item name="Name">Mercury</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Venus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Earth</item>
        <item name="Distance from the Earth">0</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Mars</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Jupiter</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Saturn</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Uranus</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Neptune</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
    <planet>
        <item name="Name">Pluto</item>
        <item name="Distance from the Earth">100000</item>
        <item name="Size">9</item>
        <item name="Moons">A,B,C</item>
        <item name="Gravity">0.4</item>
        <item name="Elements Found">H, HE, C</item>
        <item name="Orbiting Time">15</item>
        <item name="Day Time">12</item>
    </planet>
</planets>  
</celestialBodies>
'''

root = ET.fromstring(data)

for kind in root:
    print(kind.tag)
    for child in kind:
        print(' '*2, child.tag)
        for item in child:
            print(' '*4, '{!r}: {!r}'.format(item.attrib['name'], item.text))
        print()

这个变体将数据加载到包含两个列表的字典中,一个是恒星列表,一个是行星列表。这些列表中的每一个都包含该类别中每个主体的词典。我们可以使用
json
模块很好地打印数据

import xml.etree.ElementTree as ET
import json

root = ET.fromstring(data)

bodies = {}
for kind in root:
    bodies[kind.tag] = bodylist = []
    for child in kind:
        bodylist.append({item.attrib['name']: item.text for item in child})

print(json.dumps(bodies, indent=4))
输出

stars
   star
     'Name': 'Sun'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE'
     'Orbiting Time': '15'
     'Day Time': '12'

planets
   planet
     'Name': 'Mercury'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Venus'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Earth'
     'Distance from the Earth': '0'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Mars'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Jupiter'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Saturn'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Uranus'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Neptune'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'

   planet
     'Name': 'Pluto'
     'Distance from the Earth': '100000'
     'Size': '9'
     'Moons': 'A,B,C'
     'Gravity': '0.4'
     'Elements Found': 'H, HE, C'
     'Orbiting Time': '15'
     'Day Time': '12'
 {
    "stars": [
        {
            "Name": "Sun",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE",
            "Orbiting Time": "15",
            "Day Time": "12"
        }
    ],
    "planets": [
        {
            "Name": "Mercury",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Venus",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Earth",
            "Distance from the Earth": "0",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Mars",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Jupiter",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Saturn",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Uranus",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Neptune",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        },
        {
            "Name": "Pluto",
            "Distance from the Earth": "100000",
            "Size": "9",
            "Moons": "A,B,C",
            "Gravity": "0.4",
            "Elements Found": "H, HE, C",
            "Orbiting Time": "15",
            "Day Time": "12"
        }
    ]
}

与仅使用一个通用项元素相比,您的XML结构可以更好地利用格式的可能性。与仅使用一个通用项元素相比,您的XML结构可以更好地利用格式的可能性。我得到了
AttributeError:'XML.etree.ElementTree.element'对象没有属性'name'
的错误您使用的是哪个版本的etree/python?我得到的错误是
AttributeError:'xml.etree.ElementTree.Element'对象没有属性“name”
您使用的是哪个版本的etree/python?