以下是我的词典示例:
dict = {'Croatia': '191', 'Cuba': '192', 'Curaçao': '531',
'Cyprus': '196', 'Czechia': '203', 'Czechoslovakia': '200',
"Côte d'Ivoire": '384', "Dem. People's Rep. of Korea": '408',
'Dem. Rep. of the Congo': '180', 'Denmark': '208'}
我的目标是尝试将单词写入csv文件,这样每行将有一个键和一个值,例如:
克罗地亚,191
古巴,192
我正在使用csv
来实现此目的:
import csv
with open('dict.csv', 'w') as csv_file:
writer = csv.writer(csv_file)
for key, value in dict.items():
writer.writerow([key.encode('utf-8'), value])
当不使用key.encode('utf-8')
时,Python会给出错误'ascii'编解码器无法编码位置1中的字符'\ xf4':ordinal不在范围内(128),大概是由词典中的Côte d'Ivoire
提供。但是,即使现在可以成功生成csv文件,csv文件本身也包含其他字符b'countryname'
而不是countryname
。
(参见图片以供参考:http://imgur.com/a/WH2gF)
如何解决这个特定问题?
答案 0 :(得分:0)
The docs介绍了如何处理编码。正如您所见,尝试对单个元素进行编码并不能很好地进行编码。
答案 1 :(得分:0)
好吧,我建议您使用Pandas
来达到目的。
import pandas as pd
country_name = dict.keys()
cnt = dict.values()
df = pd.DataFrame({'countryname':country_name,'count':cnt})
df.to_csv('result.csv',sep=',',encoding='utf-8')