【发布时间】:2018-02-25 14:23:25
【问题描述】:
我有一个格式如下的 csv 文件:
type,type_mapping, style,style_mapping,Count
Residential,Residential,Antique,Antique,109
Antique,Residential,Antique,Antique,48
Apt/Garage,Commercial,Apt/Garage,Apartment,1
我正在使用 Python(版本 3)中的 csv 模块对其进行解析。这是我的代码:
import os
import csv
typeXref = dict()
with open('xref.csv') as csvData:
csvRead = csv.reader(csvData)
headers = next(csvRead)
for index, row in enumerate(csvRead):
typeXref[index] = {key: value for key, value in zip(headers, row)}
print(typeXref)
由于某种原因,我的第一列不断返回标题中第一列的字节顺序标记\ufeff。
408: {'\ufefftype': 'Residential', 'type_mapping': 'Residential',
' style': 'Antique', 'style_mapping': 'Antique', 'Count': '109'}}
我认为这是由于我打开文件、使用 csv 模块读取内容或生成文件的方式所致。
我可以弄清楚如何解码该字段,但宁愿确保我正确生成文件,或者使用csv 模块属性。
【问题讨论】:
-
您是否已经尝试使用
with open('xref.csv', encoding='utf-8') as csvData:? -
好主意。我刚刚尝试过,但我仍然检索到相同的 BOM。然而,我怀疑它是沿着这些方向发展的。
标签: python python-3.x csv unicode