向csv添加数据时出现问题

2024-06-01 19:06:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个脚本,将价格保存到csv文件中,但是对于其中的两个输入,在附加到文件时会添加引号。这是代码。当我在上面打印时,它不会显示报价

def insert_data(self, data):
    for p in data:
        print(p)
    with open ('tracker_file.csv', 'a') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow(data)

这是附加到文件中的内容

2021-08-26,21:57:12,"34,307.65","2,272.25",123.72,447.77

这是打印功能的输出

2021-08-26
21:57:12
34,307.65
2,272.25
123.72
447.77

不确定是什么导致了这一切


Tags: 文件csv代码self脚本fordatadef
1条回答
网友
1楼 · 发布于 2024-06-01 19:06:07

看起来data变量是一个列表/元组。如果真是这样,CSV编写器会将其视为一行。如果希望data的每一项都是新行,则它应该是列表/元组的列表/元组:

下面是一个简单的例子:

import csv

# First, let's create a CSV file
data = [
    ['2021-01-01', 10, 20],
    ['2021-01-02', 30, 40],
]

with open('file.csv', 'w') as fd:
    writer = csv.writer(fd)
    for row in data:
        writer.writerow(row)


# Now, let's append to it
new_data = [
    ['2021-01-03', 50, 60],
    ['2021-01-04', 70, 80],
]

with open('file.csv', 'a') as fd:
    writer = csv.writer(fd)
    for row in new_data:
        writer.writerow(row)

内容包括:

$ cat file.csv
2021-01-01,10,20
2021-01-02,30,40
2021-01-03,50,60
2021-01-04,70,80

相关问题 更多 >