所以我有一个CSV文件,数据排列如下:
X,a,1,b,2,c,3
Y,a,1,b,2,c,3,d,4
Z,l,2,m,3
我想创建一个嵌套的CSV字典。在
^{pr2}$在更新了我编写的程序中的字典(我已经搞定了那个部分),我希望能够将字典导出到相同的CSV文件中,覆盖/更新它。不过,我希望它与以前的CSV文件格式相同,这样我就可以再次导入它了。在
我一直在玩进口货,到目前为止都有这个
import csv
data = {}
with open('userdata.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
data[row[0]] = {row[i] for i in range(1, len(row))}
但这不起作用,因为事情安排得不正确。有些数字是其他数字的子键,字母错位等等。我甚至还没到出口部分。有什么想法吗?在
既然你对维持秩序不感兴趣,那就简单一点吧:
后者可以通过只调用
^{pr2}$csv.writer
的writerows()
方法并传递给它一个generator expression来实现。在您可以使用来自^{} 的
grouper
配方:这将把数据分组到所需的a1/b2/c3对中。所以您可以在循环中执行
data[row[0]] = {k: v for k, v in grouper(row[1:], 2)}
。在相关问题 更多 >
编程相关推荐