擅长:python、mysql、java
<p>我认为这个结果显然被误解了。在</p>
<p>DictReader从第一行获取字段名,第一列(不可见BOM之后的列)就是“id”。这就是为什么id字段现在在每个记录中都预先添加了BOM。在</p>
<p>在Python2.7和3.6中,我必须使用方言<code>csv.excel_tab</code>来将制表符解释为分隔符。在</p>
<p>您的输入数据/csv文件是绝对可以的,因为只有一个BOM在开始(它应该在那里)。你只需要在阅读前把BOM去掉。在</p>
<p>例如这样:</p>
<pre><code>from codecs import BOM_UTF8
csv_file = open('test2.csv', 'rU')
csv_file.seek(len(BOM_UTF8))
ipFile = csv.DictReader(csv_file, dialect=csv.excel_tab)
</code></pre>