【发布时间】:2021-06-22 18:48:32
【问题描述】:
我有一份在每个月初生成的 .csv 格式的报告。目前,该报告包含一系列带有分类数据的列;其中一列是“add_date”字段,其中包含“YYYY-mm-dd HH:MM:SS”格式的数据。
我的最终目标是解析此源 CSV,以便仅保留包含“add_date”单元格且日期为上个月的行。例如,如果脚本在 2021 年 2 月 1 日运行,则只有包含 2021 年 1 月的日期的行会保留在输出 CSV 文件中。
这是源 CSV 内容的示例:
Name,Data1,add_date
jasmine,stuff ,2021-01-26 17:29:46
ariel,things,2021-01-26 17:48:04
ursula,foo,2016-11-02 19:32:09
belle,bar,2016-01-21 18:47:33
这是我目前拥有的python脚本:
#!/usr/bin/env python3
import csv
filtered_rows = []
with open('test123.csv', newline='') as csvfile:
rowreader = csv.reader(csvfile, delimiter=',')
for row in rowreader:
if row["2021-01"] in csvfile.add_date:
filtered_rows.append(row)
print(filtered_rows)
我用以下命令调用:
./testscript.py > testfile.csv
目前,当我运行上述命令时,我收到以下错误消息:
Traceback (most recent call last):
File "./testscript.py", line 9, in <module>
if row["2021-01"] in csvfile.add_date:
TypeError: list indices must be integers or slices, not str
我当前的 Python 版本是 Python 3.6.4,在 CentOS Linux 版本 7.6.1810(核心)中运行。
【问题讨论】: