在Python中重新排列字段

2024-05-23 20:01:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让python程序在列表中显示员工姓名、工资和部门。这是我的csv文件:

Name, Salary, Department
Pika Chu, 5000, Pokemon
Peter Parker, 10000, Friendly Neighborhood Spiderman
Bruce Lee, 25000, Kung Fu Master
Trevor Phillips, 30000, Grand Theft Auto
Willy Wonka, 1000000, Chocolatier
Mario, 84000, Plumber
Sonic, 20000, Runner

这是我的代码:


#!/usr/bin/env python3
import csv
import os



def read_employees(file):


 open(file, 'r')


 csv.register_dialect('stfDialect', skipinitialspace=True, strict=True)
 staffFile = csv.DictReader(open(file), dialect = 'stfDialect')

 staffList = []
 for data in staffFile:
     staffList.append(data)
 return staffList

staffList = read_employees("Staff.csv")
print(staffList)

输出如下:

{'Name': 'Pika Chu', 'Salary': '5000', 'Department': 'Pokemon'}

但我希望输出显示如下数据:

{'Department': 'Pokemon', 'Salary': '5000', 'Name': 'Pika Chu'}

我可以知道怎样才能做到这一点吗? 多谢各位


Tags: csvnameimportreadopenpikafiledepartment
2条回答
import csv
import os
def read_employees(file):
  csv.register_dialect('stfDialect', skipinitialspace=True, strict=True)
  with open(file, r') as f
    staffFile = csv.DictReader(f, dialect = 'stfDialect')
  return list(staffFile)

staffList = read_employees("Staff.csv")
for e in staffList:
  print({k: e[k] for k in ('Department', 'Salary', 'Name')})

您可以使用OrderedDict

 from collections import OrderedDict

 staffList = []
 fields_order = ["Department", "Salary", "Name"]
 for data in staffFile:
     o_d = OrderedDict()
     for field in fields_order:
        o_d[field] = data["field"]
     staffList.append(o_d)
 return staffList

相关问题 更多 >