【发布时间】:2015-09-24 11:15:39
【问题描述】:
我编写 CSV 解析器。
CSV 文件中包含未识别字符的字符串,而 JSON 文件中包含正确字符串的映射。
文件.csv
0,�urawska A.
1,Polnar J�zef
dict.json
{
"\ufffdurawska A.": "\u017burawska A.",
"Polnar J\ufffdzef": "Polnar J\u00f3zef"
}
解析.py
import csv
import json
proper_names = json.load(open('dict.json'))
with open('file.csv') as csv_file:
reader = csv.reader(csv_file, delimiter=',')
for row in reader:
print proper_names[row[1].decode('utf-8')]
Traceback(最近一次调用最后一次):文件“parse.py”,第 9 行,在 print proper_names[row[1].decode('utf-8')] UnicodeEncodeError: 'ascii' codec can't encode character u'\u017b' in position 0: ordinal 不在范围内(128)
我怎样才能将这个字典与解码的字符串一起使用?
【问题讨论】:
-
对我来说,您的控制台似乎无法处理
utf-8。如果您直接尝试将值打印到控制台,您会得到什么,例如print proper_names.values()[0]? -
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 8: ordinal not in range(128)
标签: python python-2.7 dictionary unicode