添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

将字符串写入CSV导致CSV中的字符串被逗号分隔的问题(Python)

1 人关注

我正面临着一个到目前为止还无法解决的问题。我需要将一个字符串的列表保存到CSV文件中。我可以做到这一点,但是列表中每个元素的字符串都用逗号隔开。为什么会这样,我需要做什么来解决这个问题?对不起,我的问题很简单,我是编程新手。我知道这与字符串属性有一定的关系,每个数字都类似于列表中的一个项目,并且是有索引的,但是我无法找到这种行为的原因以及如何解决它。

Here is the code:

duplicity = ['8110278643', '8110278830', '8110283186']
with open("duplicty.csv", "w", newline="") as duplicity_csv:
    output_writer = csv.writer(duplicity_csv)
    header = ["Number"]
    output_writer.writerow(header)
    for item in duplicity:
        output_writer.writerow(item)

The output of this code in CSV is following:

Number
8,1,1,0,2,7,8,6,4,3
8,1,1,0,2,7,8,8,3,0
8,1,1,0,2,8,3,1,8,6

The expected output should be:

Number
8110278643
8110278830
8110283186

非常感谢您的回复!

python
string
csv
file-writing
Samurajx
Samurajx
发布于 2022-08-24
3 个回答
Daniil Fajnberg
Daniil Fajnberg
发布于 2022-08-24
已采纳
0 人赞同

The writerow method 采取了一个 可迭代的 of strings. Each item in your list is in fact an 可迭代的 -- namely a string. Each element from that 可迭代的 (in your case each letter 字符串中的)被作为其在另一列中的元素。

你可以用这个来代替。

for item in duplicity: output_writer.writerow([item])
很好,非常感谢,它起作用了!那么,如果我把列表中的项目放入一个变量,并使用[],整个变量的有效载荷就被视为一个元素?
@Samurajx 是的,在你的例子中,每个 item 都是一个字符串。因此,如果你把它包围在 [] 中,你现在有一个长度为1的字符串的列表(一个可迭代的)。如果你把这个答案标记为接受,我将非常感激,如果它对你有帮助的话。
funnydman
funnydman
发布于 2022-08-24
0 人赞同

Use writerows ,例如。

duplicity = ['8110278643', '8110278830', '8110283186']
with open("duplicty.csv", "w", newline="") as duplicity_csv:
    output_writer = csv.writer(duplicity_csv)
    header = ["Number"]
    output_writer.writerows([row] for row in header + duplicity)