栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以使用csv.DictReader保持列顺序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以使用csv.DictReader保持列顺序?

Python的

dict
不会在3.6之前保持顺序(但是,无论该版本如何,
csv.DictReader
该类都被修改为返回
OrderedDict
s)。

然而,实例

csv.DictReader
您使用(你读过的第一行后- !) 确实 有一个
.fieldnames
字符串列表,其中 IS
秩序。

所以,

for rowdict in myReader:  print ['%s:%s' % (f, rowdict[f]) for f in myReader.fieldnames]

会告诉你的是,为了确实维护(中

.fieldnames
当然, 千万不要
dict
-这是在Python本质上是不可能的- - !)。

因此,假设您要以相同的列顺序进行

a.csv
读写
b.csv
。使用普通的读取器和写入器太容易了,因此您想使用Dict变体;-)。好吧,一种方法是…:

import csva = open('a.csv', 'r')b = open('b.csv', 'w')ra = csv.DictReader(a)wb = csv.DictWriter(b, None)for d in ra:  if wb.fieldnames is None:    # initialize and write b's headers    dh = dict((h, h) for h in ra.fieldnames)    wb.fieldnames = ra.fieldnames    wb.writerow(dh)  wb.writerow(d)b.close()a.close()

假设您有标头

a.csv
(否则您不能在其上使用DictReader),而只想要相同的标头
b.csv



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号