我有来自系统的愚蠢数据,它需要被展平。
主 csv 有这些列:主机名、程序名、版本名
但是,每个主机只有一行,所以最后两个字段如下所示:
程序名内容:
Word
Excel
Cognos
Mozilla
版本内容(不是真实的,仅用于说明目的):
2.3.2
121.3.0
build 22
确保事情匹配并更简洁和 python 地做到这一点的最佳方法是什么。
这是真实代码的样子,上面主要是为了演示目的:
for row in tan_output.programs:
names = row["Name"].splitlines()
versions = row["Version"].splitlines()
if(len(names) != len(versions)):
print("NAME and VERSION from tan_programs are not equal... Exiting")
exit()
else:
for name in names:
#tan_programs.append({"Count": row["Count"], "Hostname": row["Hostname"], "Name": row["Name"], "Version": row["Version"]})
我被困在 for 循环的底部,因为我觉得我应该同时循环通过两个列表而不是循环通过一个,然后我要做什么,使用计数器来引用第二个并形成扁平数据。
PS,文件是 7 gigs ......所以效率越高越好例如如果我必须使用计数器,我从经验中知道 i += 1 比 i = i + 1 效率高 100 倍