Python:编码问题

时间:2011-10-29 16:18:25

标签: python unicode encoding

我将数据保存到字典中并将其保存到字典后打印数据以查看它的外观,我看到了unicode:

(u'520775', [[u'Kategori:2. divisjon fotball for herrer 2008']])
(u'754686', [[u'Kategori:Debutalbum', u'Kategori:Musikkalbum fra 1990', u'Kategori:Tre Sm\xe5 Kinesere-album']])
(u'381191', [[u'Kategori:Serierundene i Adeccoligaen 2007']])
(u'972597', [[u'Kategori:Tippeligaen 2011']])
(u'263001', [[u'Kategori:Musikkalbum fra 2003']])
(u'23037', [[u'Kategori:Luftforsvaret']])
(u'640060', [[u'Kategori:Deltagermedaljen', u'Kategori:F\xf8dsler i 1923', u'Kategori:Norske folkemusikere', u'Kategori:Norske trekkspillere', u'Kategori:Paul Harris Fellow', u'Kategori:Personer fra Vefsn kommune']])

我有以下代码,我使用了格式选项,但它没有真正起作用。令我困惑的是,当我在将其保存到字典中之前打印id时,我看到它没有整数。

以下是代码的一部分,

for (pageId, pageData) in data['query']['pages'].iteritems():
            categoryTitles = [];
            idTitleDictionary[pageId] = [];
            print pageId;
            try:
                for category in pageData['categories']:
                    categoryTitles.append(category['title']);
                idTitleDictionary[format(pageId)].append(categoryTitles);

我正在尝试在将其保存到字典之前对其进行编码。

1 个答案:

答案 0 :(得分:1)

print dictlisttuplerepr在容器中的项目上调用时,而不是{{1就像你直接str时一样,所以你会看到unicode转义代码。

如果你要

print

您会看到为您的终端正确编码的字符串。您不需要对这些字符串执行任何操作来解释转义码 - 所有内容都已正确存储,只是它的显示方式。