Unicode LXML Generator - PullRequest
       9

Unicode LXML Generator

0 голосов
/ 20 февраля 2019

Я начинающий программист Python.Я был увиден урок и хочу начать этот код.Помогите мне, пожалуйста, начать этот код.Проблема с Юникодом lxml.Я не мог понять, в чем проблема.Я пытаюсь решить эту проблему.Но не мог.Я должен сгенерировать файл XML.

screenshot

# -*- coding: utf-8 -*-
from lxml import etree, objectify

def create_appt(data):
    appt = objectify.Element("appointment")
    appt.begin = data["begin"]
    appt.uid = data["uid"]
    appt.alarmTime = data["alarmTime"]
    appt.state = data["state"]
    appt.location = data["location"]
    appt.duration = data["duration"]
    appt.subject = data["subject"]
    return appt

def create_xml():
    xml = '''<?xml version="1.0" encoding="UTF-8"?>
    <zAppointments>
    </zAppointments>
    '''

    root = objectify.fromstring(xml)
    root.set("reminder", "15")

    appt = create_appt({"begin":1181251680,
                        "uid":"040000008200E000",
                        "alarmTime":1181572063,
                        "state":"",
                        "location":"",
                        "duration":1800,
                        "subject":"Bring pizza home"}
                        )

    root.append(appt)

    uid = "604f4792-eb89-478b-a14f-dd34d3cc6c21-1234360800"
    appt = create_appt({"begin":1234360800,
                        "uid":uid,
                        "alarmTime":1181572063,
                        "state":"dismissed",
                        "location":"",
                        "duration":1800,
                        "subject":"Check MS Office website for updates"}
                        )
    root.append(appt)

    objectify.deannotate(root)
    etree.cleanup_namespaces(root)

    obj_xml = etree.tostring(root,
        pretty_print=True,
        xml_declaration=True
    )

    try:
        with open("ex.xml", "wb") as xml_writer:
            xml_writer.write(obj_xml)
    except IOError:
        pass

if __name__ == "__main__":
    create_xml()

1 Ответ

0 голосов
/ 20 февраля 2019

Сделайте так, как говорит ошибка, и превратите ваш string в bytes объект

def create_xml():
    xml = b'''<?xml version="1.0" encoding="UTF-8"?>
    <zAppointments>
    </zAppointments>
    '''
...