作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我尝试生成包含西里尔符号的 .xml 文件。但结果出乎意料。避免这种结果的最简单方法是什么?示例:
from lxml import etree
root = etree.Element('пример')
print(etree.tostring(root))
我得到的是:
b'<пример/>'
代替:
b'<пример/>'
最佳答案
etree.tostring()
不带附加参数将纯 ASCII 数据输出为 bytes
对象。你可以使用 etree.tounicode()
:
>>> from lxml import etree
>>> root = etree.Element('пример')
>>> print(etree.tostring(root))
b'<пример/>'
>>> 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/
我在数据库中有一个具有俄罗斯值(value)观的项目。我需要做的就是附和他们,但事实证明这比预期的要困难。所有俄语字符都只是作为问号打印。 IE: ??? ? ????????对于我尝试过的每种编码,
这是我解析 JSON 的函数: func jsonParsingWeather(urlPath:String) -> NSDictionary { var utf8URLPath = urlP
我是一名优秀的程序员,十分优秀!