【发布时间】:2017-04-26 12:27:24
【问题描述】:
我正在尝试写入 .csv 文件 3 个变量:日期、最低、最高温度。我用数字代替了 tmax 和 tmin,因为我不想重复导入等。
这是我的代码:
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)
我也尝试了几次迭代:
dict_writer.writerows(todayD: tmin: tmax)
dict_writer.writerows(todayD | tmin | tmax)
dict_writer.writerows(minmax)
通常错误如下:
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
干杯,
【问题讨论】:
-
你试过像
dict_writer.writerow(minmax)这样的writerow吗? -
dict_writer.writerow() 适合您的情况。
data = {}data['date'] = todayDdata['min'] = tmindata['max'] = tmaxwriter.writerow(data) -
与上面 Sijan 相同的错误,我得到了 Azat:Traceback(最近一次调用最后):文件“C:/Users/anderstn/Desktop/JsonToCsv/JsonImport.py”,第 42 行,在 dict_writer.writerow(minmax) 文件“C:\Users\anderstn\AppData\Local\Programs\Python\Python36-32\lib\csv.py”,第 155 行,在 writerow 中返回 self.writer.writerow(self. _dict_to_list(rowdict)) 文件“C:\Users\anderstn\AppData\Local\Programs\Python\Python36-32\lib\csv.py”,第 148 行,在 _dict_to_list wrong_fields = rowdict.keys() - self.fieldnames AttributeError : 'list' 对象没有属性 'keys' 对于您的解决方案
-
你需要发送一个我在上面修改过的字典结构。你试过吗?