如何使XML文件产生正确的输出/数据?

时间:2019-12-12 13:43:49

标签: python xml

我正在使用以下代码将正确的结果打印到控制台,但是当我查看文件内容时,它是不正确的:

def xmls (id):
    myfile = open("items2.xml", "wb")
    xml_node = etree.Element("node")
    item = etree.SubElement(xml_node, 'Item')
    etree.SubElement(item, 'ID').text = id

    # create a new XML file with the results
    mydata = ET.tostring(xml_node)
    print(mydata)

    myfile.write(mydata)
    myfile.close()

控制台输出:

b"<node><Item><ID>1</ID></Item></node>"
b"<node><Item><ID>2</ID></Item></node>"

但是文件只有一个ID:

<node><Item><ID>2</ID></Item></node>

该如何解决?

1 个答案:

答案 0 :(得分:1)

open()您的文件用于追加listOne = list_one listTwo = list_two listKey = [] listValues = [] for x in listOne: listKey.append(x['name']) listValues.append(x['age']) output_comp={} output_comp['Output']=[] for i in listTwo: if i['name'] in listKey: if i['age'] in listValues: output_comp['Output'].append({'name': i['name'], 'age': i['age'], 'Status': 'Match'}) else: output_comp['Output'].append({'name': i['name'], 'age':i['age'], 'Status':'age mismatch', 'Expected_age': x['age']}) else:output_comp['Output'].append({'name': i['name'], 'age': i['age'], 'Status': 'total mismatch'}) ),而不是写作"a"):

"w"

使用myfile = open("items2.xml", "ab") 覆盖文件中已有的所有内容:

  

打开进行写入,首先将文件截断

通过"w",您将获得:

  

打开以进行写入,并附加到文件末尾(如果存在)