奇怪的角色追加到python列表的前面

Fun*_*esh 2 python

关于在linux上运行python我遇到了问题.我正在尝试学习python,并希望尝试解析一个小的XML文件并将标记和数据放入列表中.但是每次运行代码时,我都会在列表中的每个元素后附加一个"u".

[u'world']
defaultdict(<type 'list'>, {u'world': [u'data']})
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

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"
Run Code Online (Sandbox Code Playgroud)

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

eng*_*ree 5

这个"奇怪的"符号基本上意味着string或者character以unicode编码

例如.如果我有一个字符串Test:

>>> unicode('Test')
u'Test'
>>> s = unicode('Test')
>>> type(s)
<type 'unicode'>
Run Code Online (Sandbox Code Playgroud)

文档在这里

总而言之,根据python文档,

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