例如,我的csv具有以下列:
ID, ID2, Date, Job No, Code
我需要以相同的顺序写回列。该dict
立即搅乱秩序,所以我相信它更与读者的问题。
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 csv
a = 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
。
问题内容: 如果我有以下Python代码 将保证始终是,或者是临时元件的其他排序可能吗? 问题答案: 是的,python列表中元素的顺序是持久的。
问题内容: 以下代码以相同的插入顺序为我提供了输出。我阅读了Javadoc,他们甚至没有谈论插入顺序。有人可以帮助我获取正确的信息。 问题答案: 不,不是的。要保留插入顺序,请改用(javadoc)。 而且,现在优先于,因为它具有不必要的并发开销。(请参见HashMap和Hashtable之间的区别?。)
问题内容: 我知道React可以异步并批量执行状态更新以优化性能。因此,在调用之后,您将永远无法相信要更新的状态。但是你可以信任的反应 更新相同的顺序状态被称为对 相同的组件? 不同的组件? 考虑在以下示例中单击按钮: 1. 在以下情况下,是否有可能 a为假而b为真 : 2. 在以下情况下,是否有可能 a为假而b为真 : 请记住,这些是我用例的极端简化。我意识到我可以以不同的方式进行操作,例如,在
问题内容: Elasticsearch是否保持多值字段的顺序? 即,如果我在字段中输入了以下值: (鉴于未分析字段) 我是否可以确定列表的内容将始终按照与放置列表相同的顺序返回? 在上面的示例中,我想确保“值”中第一个位置的“一个”将始终与“ values_original”等中的“ 1”相对应。 我也可以将其保留为嵌套对象,即 但我想避免开销。 如果可以保证保留多值字段中的值顺序,那么我保留两个
问题内容: 我是网络编程的新手。我有兴趣通过Java服务器和C客户端之间的套接字建立网络连接并保持连接无限打开的可能吗?我想保持连接打开状态以在客户端之间交换XML数据。 问题答案: 从理论上讲,可以无限期地打开服务器套接字;但是,使用客户端套接字是不可能的。主要原因是因为客户端套接字取决于处理数据的服务器端套接字,并且服务器套接字可能会关闭连接。 尽管可以无限期地保持连接打开,但实际情况通常会确
问题内容: 我特别想知道PostgreSQL。给出以下人为的示例: 从外部查询返回的名称是否保证与内部查询的顺序相同? 问题答案: 不,在外部查询中按以下顺序排序: 内部(子)查询返回结果集。如果按此顺序进行排序,则保证从内部(子)查询传递到外部查询的中间结果集将按照您指定的方式进行排序,但是在外部查询中不对结果进行排序通过处理内部查询结果集生成的结果集,不能保证以任何方式进行排序。