gpt4 book ai didi

python - 在 python lxml 库中使用西里尔字母的正确方法是什么

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:12 25 4
gpt4 key购买 nike

我尝试生成包含西里尔符号的 .xml 文件。但结果出乎意料。避免这种结果的最简单方法是什么?示例:

from lxml import etree

root = etree.Element('пример')

print(etree.tostring(root))

我得到的是:

b'<&#1087;&#1088;&#1080;&#1084;&#1077;&#1088;/>'

代替:

b'<пример/>'

最佳答案

etree.tostring() 不带附加参数将纯 ASCII 数据输出为 bytes 对象。你可以使用 etree.tounicode() :

>>> from lxml import etree
>>> root = etree.Element('пример')
>>> print(etree.tostring(root))
b'<&#1087;&#1088;&#1080;&#1084;&#1077;&#1088;/>'
>>> print(etree.tounicode(root))
<пример/>

或使用 encoding argument 指定编解码器;但是你仍然会得到字节,所以输出需要再次解码:

>>> print(etree.tostring(root, encoding='utf8'))
b'<\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80/>'
>>> print(etree.tostring(root, encoding='utf8').decode('utf8'))
<пример/>

将编码设置为 unicode 可为您提供与 tounicode() 相同的输出,并且是首选拼写:

>>> print(etree.tostring(root, encoding='unicode'))
<пример/>

关于python - 在 python lxml 库中使用西里尔字母的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com