【发布时间】:2018-08-09 01:52:06
【问题描述】:
循环浏览 CSV 文件的内容时,我正在尝试创建开始时间和结束时间;
我知道基于row['form'] 提交的表单,我记录了这些表单的提交时间,我正在尝试创建start 和end 时间,以便稍后获得完成的平均时间他们的形式。
for row in rows:
branch = Branch(row['user_id'], row['form'], row['time'])
if branch.id == row['user_id']:
if branch.form == 'signup':
time = {i: {'start': branch.time}}
print(time)
elif branch.form == 'submit':
time = {i: {'end': branch.time}}
print(time)
print(time) # line 27
上面的代码sn-p的问题是,对于条件语句的print() inside,它工作得很好;我得到了开始时间和结束时间。
但是当我尝试在条件语句之外 打印它时,它不起作用:
Traceback (most recent call last):
File "index.py", line 27, in <module>
print(time)
NameError: name 'time' is not defined
现在,如果我 print time 在 for 循环之外,那么它会给我最后一个值;我无法获得任何以前的值。
【问题讨论】:
-
branch.form的值是多少?你确定是signup还是submit? -
@JimWright 它是
str中的表单名称。是的,signup和submit也在其中。 -
我的意思是,如果它不是
signup和submit,那么你没有定义time。 -
@JimWright 所以它不会增加到字典
time(例如time[i])?那么我将如何分配值。有5种形式,我只需要第一次和最后一次。 -
我同意。如果您将
branch.form的所有值都使用它,请添加else至少以定义time
标签: python for-loop conditional