繁体   English   中英

Python:读入转义的 Unicode 字符并将其转换为可读文本

[英]Python: Read in escaped Unicode characters and turn them into readable text

我有一个 RDF 文件,其中大多数对象由转义的 Unicode 字符组成,如下所示:

...
<http://dbpedia.org/resource/Ry%C5%8Dgoku_Kokugikan> <http://www.w3.org/2000/01/rdf-schema#label> "\u4E21\u56FD\u56FD\u6280\u9928"@ja .
<http://dbpedia.org/resource/Tunisia> <http://www.w3.org/2000/01/rdf-schema#label> "\u30C1\u30E5\u30CB\u30B8\u30A2"@ja .
...

我想使用 Python 脚本读取此文件并将这些对象转换为可读文本,即对于上面的示例,我需要以下输出:

両国国技館
チュニジア

到目前为止,我的代码如下所示:

import codecs

for line in codecs.open("labels-en-uris_ja.nt","r","utf-8"):
    tmp = line.split(" ")
    label = tmp[2]
    label = label.split("@")[0]
    label = label.replace("\"","")
    print u"{0}".format(label)

但是,这会返回转义的 Unicode 字符不变,即作为

\u4E21\u56FD\u56FD\u6280\u9928
\u30C1\u30E5\u30CB\u30B8\u30A2

在我的代码的最后一行简单地使用print label给出了完全相同的结果。 但是, print u"\両\国\国\技\館"给出了所需的输出,所以我认为我在该文件中读取的方式有问题。 产生我想要的输出的正确方法是什么?

您可以在字符串对象上使用.decode("unicode_escape")函数来执行此操作。

print u"{0}".format(label.decode("unicode_escape"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM