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

时间:2013-04-06 03:04:25

标签: python

我遇到了关于在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"

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

1 个答案:

答案 0 :(得分:5)

“怪异”符号基本上意味着stringcharacter以unicode编码

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

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

文档here

总结一下,根据python文档,

  

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