我有
dollar_list = []
with open('fix/dollar.csv', 'r') as f:
r = csv.DictReader(f)
for dct in r:
d = dct['date']
# Convert '%d/%m/%Y' to '%Y-%m-%d'.
d = datetime.datetime.strptime(d, '%d/%m/%Y').strftime('%Y-%m-%d')
dollar_list.append(d, dct['value']) # <- here
f.close()
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
答案 0 :(得分:2)
我想也许你想要
dollar_list.extend([d, dct['value']]) # <- here
#list looks like [A1,A2,B1,B2,C1,C2,...]
或
dollar_list.append([d, dct['value']]) # <- here
#list looks like [[1,2],[3,4],..]
答案 1 :(得分:1)
我不认为扩展是正确的方式,因为日期和值的有序对应插入列表中。
提案基于元组来表示有序(日期,值)对:
#! /usr/bin/env python
from __future__ import print_function
import csv
import datetime as dt
dollar_list = []
with open('fix/dollar.csv', 'r') as f:
for dct in csv.DictReader(f):
dollar_list.append(
(dt.datetime.strptime(
dct['date'], # Convert '%d/%m/%Y' to '%Y-%m-%d'.
'%d/%m/%Y').strftime('%Y-%m-%d'),
dct['value'])
)
print(dollar_list)
fix/dollar.csv
有:
date,value
31/01/2016,2.03
01/02/2016,2.02
然后在脚本上面运行产生:
[('2016-01-31', '2.03'), ('2016-02-01', '2.02')]
注释:我取消了close调用(上下文管理器执行此操作),删除了不需要的局部变量。 ESP。当再次覆盖它们时,它可能会使读者感到困惑,因为在问题表达的日期时间转换步骤中,公式右侧的d
可能很容易被忽略。您也可以直接迭代匿名csv.DictReader
实例。最后但并非最不重要的是添加了所需的导入以使样本完整。