【问题标题】:Python: Incorrect dictionary encodingPython:不正确的字典编码
【发布时间】:2014-08-04 20:50:36
【问题描述】:

我正在制作一本字典,其中包含包含č,ě,á(捷克字母)等字符的单词。当我尝试在添加到字典之前将这些单词打印到控制台中时,我可以看到正确的编码单词。问题是,当我将它添加到字典中并将该单词作为值打印时,我看到了它,但编码错误。这是我的控制台的打印屏幕,第一行是print name,第二行是print dict

这些单词/句子应该是一样的。

信息:

PyCharm IDE,Python 2.7.8,默认编码:“utf-8”

感谢您的建议!

编辑:附加代码('url'是网页的url):

    def getSoup(url):
    req = urllib2.Request(url)

    response = urllib2.urlopen(req)
    page = response.read()
    soup = BeautifulSoup(page, 'xml')
    return soup

a=0
klubyDict = dict()
index = getSoup("url")
all = index.findAll('A')
for i in all:

    okres = getSoup("http://url%s"%(i['HREF']))
    kluby = okres.findAll('A')
    # print(kluby[0]['HREF'])
    print "Okrsok...%s"%(i.text)
    for klub in kluby:
        klubHtml = getSoup("http://url%s"%(klub['HREF']))
        name = klub.text
        print name
        emailTag = klubHtml.find('td',text=re.compile("Email:"))
        email = emailTag.text[7:]
        if len(name)>0:
            klubyDict[name]=email if len(email)>0 else "email nezadany"
            print klubyDict

print "Saving to file..."
with open('futbaloveKluby','wb') as f:
    pickle.dump(klubyDict,f)

EDIT2:将数据添加到excel文件中

# -*- coding: utf-8 -*-

import cPickle as pickle

dict = dict()
workbook = xlsxwriter.Workbook('Futbal.xlsx')
worksheet = workbook.add_worksheet()

with open('futbaloveKluby','rb') as f:
    dict = pickle.load(f)

colKlub = 0
colEmail = 1
row = 0

for klub in dict.keys():
    worksheet.write(row,colKlub, klub)
    worksheet.write(row,colEmail, dict[klub])
    row += 1

workbook.close()
        print table.text

主要是在这段代码之后,我使用 xlscWriter 将这个字典的值放入 Excel 表中。当我打开 Excel 文件时,我可以看到错误的字符。

【问题讨论】:

  • 您是否在主代码顶部使用了utf8 encoding?或者你如何将unicode 传递给dictionary
  • @Kasra 是的,我已经在文件 utf-8 的顶部说明了
  • 什么操作系统?
  • 其中一个是python dictrepr,另一个是print 输出。请发布一些代码以帮助理解您在做什么,而不是屏幕截图的片段;-)
  • @rob Windows 7 家庭高级版

标签: python unicode encoding utf-8


【解决方案1】:

import codecs 并使用此代码作为您的姓名:

name = klub.text
print name.decode('utf-8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多