【发布时间】:2019-03-13 06:40:43
【问题描述】:
我正在尝试对我的 csv 文件中的特定列或键进行排序。
文本文件如下所示:
NameID, StudentName, University, Phone, State
SROGE, Steve Rogers, UofI, 324324423, New York
JSNOW, Jon Snow, UofWinterfell, 324234423, Westeros
DTARG, Daenerys Targaryen, Dragonstone, 345345, NULL
现在我有一个函数,它使用 DictReader 读取 csv 文件并打印。另一个函数要求用户输入,它应该显示一个排序的列:
def load_data(file_name):
university_data=[]
with open("file.csv", mode='r') as csv_file:
csv_reader = csv.DictReader(csv_file)
for col in csv_reader:
university_data.append(dict(col))
print(university_data)
return university_data
def main():
filename='file.csv'
university_data = load_data(filename)
print('[1] University\n[2] Student Name\n[3] Exit\n[4] Search')
while True:
choice=input('Enter choice 1/2/3? ')
if choice=='1':
for university in university_data:
print(university[2])
elif choice=='2':
for university in university_data:
print(university[1])
elif choice =='3':
print('Thank You')
break
else:
print('Invalid selection')
main()
我需要帮助的是创建一个用户选择 StudentName(2) 的函数(例如 Steve Rogers、Jon Snow、Daenerys Targaryen),它将显示字典的排序列表。
输出应该是:
{'NameID': 'DTARG', ' StudentName': ' Daenerys Targaryen',' University': ' Dragonstone', ' Phone': ' 345345', ' State': ' NULL'}
{'NameID': 'JSNOW', ' StudentName': ' Jon Snow', ' University': ' UofWinterfell', ' Phone': ' 324234423', ' State': 'Westeros'}
{'NameID': 'SROGE', ' StudentName': ' Steve Rogers', ' University': ' UofI', ' Phone': ' 324324423', ' State': ' NewYork'}
现在如何根据我的程序制作一个以排序方式显示的函数?
【问题讨论】:
-
是笔误,还是在返回之前忘记将文件内容存储在
university_data?恕我直言university_data.append(col)在循环中丢失... -
@SergeBallesta 我有 university_data 作为 load_data 的回报。我将 university_data.append(col) 更新到我的代码中,但出现错误。
标签: python python-3.x dictionary set