python 使用连接将字典转换为CSV文件

qhhrdooz  于 2023-08-02  发布在  Python
关注(0)|答案(2)|浏览(107)


的数据
上图是一个字典可以使用连接转换为csv文件的例子,但是我很难理解在for循环中不断重复csvString变量的语法
我试图通过导入csv模块来做类似的事情,但我一直在理解如何手动完成这一任务,以便在IDE中简单地输出csv文件

zf2sa74q

zf2sa74q1#

下面是这段代码的工作原理。字典中的每个条目都将成为csv文件中的一行
对于字典的每个键:
1.用给定的键初始化csvString并添加分隔符。到目前为止,csvString"p1,"
1.加载给定键的值
1.添加列表的第一项detailsdelimiter。对于第一个密钥,它将是"Takeshi Tanaka,"csvString变为"p1,Takeshi Tanaka,"
1.使用str函数将列表details的第二项和delimiter作为字符串添加。对于第一个密钥,它将是"25,"csvString变为"p1,Takeshi Tanaka, 25,"
1.使用str函数将列表detailsdelimiter的第三项作为字符串添加。对于第一个密钥,它将是"1.73,"csvString变为"p1,Takeshi Tanaka, 25,1.73,"
1.将列表的第四项detailsendLine字符添加到csvStringcsvString变为"p1,Takeshi Tanaka, 25,1.73,Tokyo\n"
现在可以在for循环中添加一行代码,将csvString写入csv文件。运行循环将为文件中的每个条目添加一行

ee7vknir

ee7vknir2#

+=表示将右边的部分加到左边的部分上,并将左边的部分替换为和。这使得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

相关问题