我在将字典调用到下一个函数时遇到问题。第一个函数返回元组
{'CSCA20': ['2017-12-13', '14:00'], 'CSCA67': ['2017-12-18', '9:00'], 'CSCA08': ['2017-12-13', '9:00']}
但是当我尝试在第二个函数中调用并打印它时,我得到一个空的元组。有人知道为什么以及如何解决该错误吗?
def create_course_dict(openfile):
d = {}
f = openfile
f.readline()
for line in f:
line = line.strip().split(',')
d[line[0]] = line[1:]
return d
def ceate_date_dict(d):
old_dict = {}
old_dict = create_course_dict(openfile)
print(old_dict)
with open('courses.csv') as openfile:
print(create_course_dict(openfile))
d = (create_course_dict(openfile))
ceate_date_dict(d)
答案 0 :(得分:1)
问题是您两次致电create_course_dict()
。第一次调用将读取文件中的所有行,然后打印字典。
第二次调用时,您位于文件的末尾,因此没有任何内容可供读取。因此,第二个调用返回一个空字典。
真的没有理由重复两次。调用一次,将结果分配给变量,然后使用变量:
with open('courses.csv') as openfile:
d = (create_course_dict(openfile))
print(d)
ceate_date_dict(d)
但是,如果您确实希望能够多次调用它,则可以让它首先搜索文件的开头。
def create_course_dict(openfile):
d = {}
f = openfile
f.seek(0)
f.readline()
for line in f:
line = line.strip().split(',')
d[line[0]] = line[1:]
return d