我创建了一个函数(parse_html(param)
),返回如下列表
list = [u'John', u'Muchia', u'Prozessoptimierung Fahrwiderst\xe4nde']
如果我返回print list[2]
,在我的函数中,它会给我Prozessoptimierung Fahrwiderstände
,这是完美的,但是在列表中它的显示方式不同
问题在于当我返回整个列表时return list
我想避免使用“u”。我想存储一个字符串列表,像äö和ü这样的Unicode字符也应该出现。你知道吗
fname[x]是HTML文件的源,其中x是从0递增到count的文件号(文件号)
list=[]
newlist=[]
list = parse_html(fname[7])
for row in list:
drow = row.encode('utf-8')
newlist.append(drow)
print newlist
目标是将返回的列表保存到CSV文件中。每次选择新文件(fname)时,都会创建列表,并应将新列表添加到先前创建的csv文件中。你知道吗
我做错了一件事,我意识到这一点,我的头很痛。请帮忙。你知道吗
for x in range(0,count):
list = parse_html(fname[x])
with open('output.csv', 'wb') as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(list)
错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 132: ordinal not in range(1
28)
wr.writerow([c.encode('utf-8') for c in list]) # instead `wr.writerow(list)
问题出在CSV输出代码中。因为您使用的是Python 2,所以在编写以下代码之前,应该直接编码到utf-8:
或者,升级到python3以获得更集成的unicode支持。你知道吗
u
前缀仅仅表示字符串是Unicode格式的。您的代码没有任何问题,它的行为也会正确(就好像它在代码中没有u
)。只有在print函数中输出它才能让您知道它是一个Unicode字符串。你知道吗相关问题 更多 >
编程相关推荐