2

我在 linux 上运行 python 时遇到问题。我正在尝试学习 python,并想尝试解析一个小的 XML 文件并将标签和数据放入列表中。但是每次我运行代码时,我都会在列表中的每个元素上附加一个“u”。

[u'world']
defaultdict(<type 'list'>, {u'world': [u'data']})

我的代码如下:

import xml.sax

from collections import defaultdict

class TransformXML(xml.sax.ContentHandler):

def __init__ (self):
    self.start_tag_name = -1
    self.tag_data = -1
    self.myDict = defaultdict(list)
    self.tags = []

def startElement(self, name, attrs):
    self.start_tag_name = name
    print name
    print self.start_tag_name

def characters(self, content):
    if content.strip(' \r\n\t') != "":
        self.tag_data = content.strip(' \r\n\t')
        print self.start_tag_name
        self.tags.append(self.start_tag_name)
        self.myDict[self.start_tag_name].append(content.strip(' \r\n\t'))

def endElement(self, name):
    pass

def __del__ (self):
    if self.myDict:
        del self.myDict
        print "deleteing myDict"

有谁知道问题可能是什么?

4

1 回答 1

5

那个“奇怪”的符号基本上意味着stringorcharacter是用 unicode 编码的

例如。如果我有一个字符串Test

>>> unicode('Test')
u'Test'
>>> s = unicode('Test')
>>> type(s)
<type 'unicode'>

文档在这里

总而言之,根据python文档,

... Unicode 字符串是一系列代码点,它们是从 0 到 0x10ffff 的数字。这个序列需要在内存中表示为一组字节(意思是从 0 到 255 的值)。将 Unicode 字符串转换为字节序列的规则称为编码。

于 2013-04-06T03:22:27.713 回答