我有以下程序从tsv文件中读取并导入到字典中。我需要根据jobID对字典进行排序,并给出了这个错误:
AttributeError:'dict'对象没有属性'jobid'
apps = {}
for row in csvreader:
apps[counter]= {'userid': row[0], 'time': row[1], 'jobid': row[2]}
counter = counter + 1
sorted_keys = sorted(apps.keys(), key=lambda x:apps.jobid)
感谢所有人的帮助。
dict中前三行的示例输出:
{'jobid': 'JobID', 'userid': 'UserID', 'time': 'ApplicationDate'}
{'jobid': '169528', 'userid': '47', 'time': '2012-04-04 15:56:23.537'}
{'jobid': '284009', 'userid': '47', 'time': '2012-04-06 01:03:00.003'}
谢谢!
答案 0 :(得分:2)
您似乎想要使用apps[x]["jobid"]
而不是apps.jobid
。
答案 1 :(得分:1)
您应该使用应用列表。然后,您可以使用字典查找语法x [' jobid']对jobid进行排序。这里是处理样本数据:
csvreader = (
('user1', '2pm', 2),
('user2', '2pm', 3),
('user3', '2pm', 1)
)
apps = []
for row in csvreader:
apps.append({'userid': row[0], 'time': row[1], 'jobid': row[2]})
sorted_data = sorted(apps, key=lambda x:x['jobid'])