我正在研究与Python书籍争论的例子。
尝试将CSV文件中的数据读入名为header_rdr的dictReader对象。
header_rdr = DictReader(open('/Users/tcssig/Downloads/data-wrangling-master/data/unicef/mn_headers.csv', 'r'))
当我尝试使用列表理解来读取列表中的所有dict值时,使用
header_rows = [h.decode('utf-32') for h in header_rdr]
我收到的错误消息是:'dict' object has no attribute 'decode'.
在传入字符串之前,如何在不解码字符串的情况下继续。
此外,在没有解码元素的情况下,我得到的错误为:
UnicodeDecodeError:'ascii' codec can't decode byte 0xe2 in position 2807: ordinal not in range(128)
答案 0 :(得分:0)
在迭代中,csv.DictReader
产生dict
s - 因此得名
每个dict代表样式{<column_header>: <column_value>}
中的CSV记录。
要将文件的竞争解码为UTF-32,您可以将编码指定为open
的参数。
header_rdr = DictReader(open(…, 'r', encoding='utf-32'))