的数据上图是一个字典可以使用连接转换为csv文件的例子,但是我很难理解在for循环中不断重复csvString变量的语法我试图通过导入csv模块来做类似的事情,但我一直在理解如何手动完成这一任务,以便在IDE中简单地输出csv文件
zf2sa74q1#
下面是这段代码的工作原理。字典中的每个条目都将成为csv文件中的一行对于字典的每个键:1.用给定的键初始化csvString并添加分隔符。到目前为止,csvString是"p1,"。1.加载给定键的值1.添加列表的第一项details和delimiter。对于第一个密钥,它将是"Takeshi Tanaka,"。csvString变为"p1,Takeshi Tanaka,"。1.使用str函数将列表details的第二项和delimiter作为字符串添加。对于第一个密钥,它将是"25,"。csvString变为"p1,Takeshi Tanaka, 25,"。1.使用str函数将列表details和delimiter的第三项作为字符串添加。对于第一个密钥,它将是"1.73,"。csvString变为"p1,Takeshi Tanaka, 25,1.73,"。1.将列表的第四项details和endLine字符添加到csvString。csvString变为"p1,Takeshi Tanaka, 25,1.73,Tokyo\n"。现在可以在for循环中添加一行代码,将csvString写入csv文件。运行循环将为文件中的每个条目添加一行
csvString
"p1,"
details
delimiter
"Takeshi Tanaka,"
"p1,Takeshi Tanaka,"
str
"25,"
"p1,Takeshi Tanaka, 25,"
"1.73,"
"p1,Takeshi Tanaka, 25,1.73,"
endLine
"p1,Takeshi Tanaka, 25,1.73,Tokyo\n"
for
ee7vknir2#
+=表示将右边的部分加到左边的部分上,并将左边的部分替换为和。这使得a = a + b更加简洁:a += b。它处理数字(真和),在本例中处理字符串(串联)。
+=
a = a + b
a += b
line = '' line += 'Alice' line += ' Cheng' line += ', 47,' line += ' Mailing Svcs' print(line) # Alice Cheng, 47, Mailing Svcs
字符串也请考虑这种相对简单的方法来构造和打印CSV。我修改了数据,以便最后一列包含需要引用的 * 逗号作为数据 *(实际上是正确的CSV):
import csv, sys people = { "p1": ["Takeshi Tanaka", 25, 1.73, "Tokyo, Japan"], "p2": ["Lisa Penny", 32, 1.69, "London, England"], "p3": ["Lorenzo Dubois", 38, 1.84, "Paris, France"], } writer = csv.writer(sys.stdout) for id_, details in people.items(): writer.writerow([id_] + details)
型我知道这个练习可能只是打印一些“调试值”,但是代码的标题说 * 构造CSV*,并且正确构造CSV的唯一方法(不会引入您自己的编码错误,您或其他人将不得不在以后处理)将是使用CSV感知工具,如the csv module。
2条答案
按热度按时间zf2sa74q1#
下面是这段代码的工作原理。字典中的每个条目都将成为csv文件中的一行
对于字典的每个键:
1.用给定的键初始化
csvString
并添加分隔符。到目前为止,csvString
是"p1,"
。1.加载给定键的值
1.添加列表的第一项
details
和delimiter
。对于第一个密钥,它将是"Takeshi Tanaka,"
。csvString
变为"p1,Takeshi Tanaka,"
。1.使用
str
函数将列表details
的第二项和delimiter
作为字符串添加。对于第一个密钥,它将是"25,"
。csvString
变为"p1,Takeshi Tanaka, 25,"
。1.使用
str
函数将列表details
和delimiter
的第三项作为字符串添加。对于第一个密钥,它将是"1.73,"
。csvString
变为"p1,Takeshi Tanaka, 25,1.73,"
。1.将列表的第四项
details
和endLine
字符添加到csvString
。csvString
变为"p1,Takeshi Tanaka, 25,1.73,Tokyo\n"
。现在可以在
for
循环中添加一行代码,将csvString
写入csv文件。运行循环将为文件中的每个条目添加一行ee7vknir2#
+=
表示将右边的部分加到左边的部分上,并将左边的部分替换为和。这使得a = a + b
更加简洁:a += b
。它处理数字(真和),在本例中处理字符串(串联)。字符串
也请考虑这种相对简单的方法来构造和打印CSV。
我修改了数据,以便最后一列包含需要引用的 * 逗号作为数据 *(实际上是正确的CSV):
型
我知道这个练习可能只是打印一些“调试值”,但是代码的标题说 * 构造CSV*,并且正确构造CSV的唯一方法(不会引入您自己的编码错误,您或其他人将不得不在以后处理)将是使用CSV感知工具,如the csv module。