【发布时间】:2018-05-25 11:25:38
【问题描述】:
我有一个包含以下信息的 csv 文件:
id name age height weight
1 x 12 11 124
2 y 13 23 432
3 z 14 43 1435
它存储在名为 Workbook2.csv 的文件中 我使用以下代码:
ipFile = csv.DictReader(open('Workbook2.csv', 'rU'))
dict = {} # Tring to update the rows to this dictionary.
for row in ipFile:
print row
我得到以下结果:
{'weight': '124', '\xef\xbb\xbfid': '1', 'height ': '11', 'age ': '12', 'name ': 'x'}
{'weight': '432', '\xef\xbb\xbfid': '2', 'height ': '23', 'age ': '13', 'name ': 'y'}
{'weight': '1435', '\xef\xbb\xbfid': '3', 'height ': '43', 'age ': '14', 'name ': 'z'}
我想知道如何将此输出更新为字典。 我还想知道如何忽略使用 UTF-8 编码的 unicode 字符,如果有过滤器可以用来消除它们。
【问题讨论】:
-
大概这是 Python 2?
-
看起来像一些 BOM 标头
-
你的行有一个 UTF-8 BOM 前缀。在每一行。最初的数据是如何产生的?
-
这是在 Python2 中的,但我也必须在 Python3 中纠正它。
-
@MartijnPieters 是的,这就是数据的产生方式。
标签: python python-2.7 csv utf-8 byte-order-mark