写入csv,3个变量

2024-10-03 23:24:19 发布

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

我试图写一个.csv文件3个变量:日期,最低,最高温度。因为TMI不想在数字中重复输入

这是我的代码:

import json
import datetime
import time
import csv
import sys

tmin = float(30.3333)
tmax = float(31.4444)

from datetime import datetime

i = datetime.now()
todayD = i.strftime('%Y/%m/%d')
minmax = [todayD, tmin, tmax]

with open("C:/Users/anderstn/Desktop/JsonToCsv/"+today+"_MinMax"+".csv", 'w', newline='') as e:
    dict_writer = csv.DictWriter(e, fieldnames=["Date", "Min Temp", "Max Temp"])
    dict_writer.writeheader()
    dict_writer.writerows(todayD, tmin, tmax)

我也尝试过几次迭代:

^{pr2}$

通常错误显示:

Traceback (most recent call last):
  File "C:/Users/anderstn/Desktop/JsonToCsv/JsonImport.py", line 42, in <module>
    dict_writer.writerows(todayD, tmin, tmax)
TypeError: writerows() takes 2 positional arguments but 4 were given

干杯


Tags: csvimportdatetimefloatuserstempdictwriter
3条回答

writerows()需要iterable,它每行包含一个对象。每行都应该是一个列表。writerow()还需要一个interable,它每列包含一个对象。e、 g

dict_writer.writerow([todayD,tmin,tmax])

方法DictWriter.writerows()需要一个字典列表,因此您必须将todayD、tmin、tmax放入字典中,其中包含创建^{时使用的键,然后将此字典放入列表中。在

另外,如果您只想写todayD,tmin,tmax,那么您可以使用DictWriter.writerow()在一行中编写一个单个字典。在

首先,你不需要把浮点数转换成浮点数,只需写下

tmin = 30.3333
tmax = 31.4444

^{}与字典(dict及其子类)一起工作,^{}也处理字典的列表(或其他ITerable),在我们的例子中,^{}方法就足够了,所以我们需要将dictionary传递给writerow,而不是{}实例。在

最后你的样品看起来像这样

^{pr2}$

相关问题 更多 >