【发布时间】: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
dict的repr,另一个是print输出。请发布一些代码以帮助理解您在做什么,而不是屏幕截图的片段;-) -
@rob Windows 7 家庭高级版
标签: python unicode encoding utf-8