iveはすべてのオブジェクトをリストに追加しましたが、ソートされていません。リスト内の項目をLevelNoで並べ替えたいので、1と2を並べ替えたいです。Python、リストするオブジェクトと並べ替え
取得エラーイムがある
Traceback (most recent call last):
File "pagerduty.py", line 143, in <module>
OnCallData = OnCallData.sort(key=operator.itemgetter('LevelNo'))
NameError: name 'operator' is not defined
私の現在のコードがある
from operator import itemgetter
class User(object):
__attrs = ['Policy','Level', 'LevelNo', 'StartDate', 'EndDate', 'StartTime',
'EndTime', 'Name', 'Mobile']
def __init__(self, **kwargs):
for attr in self.__attrs:
setattr(self, attr, kwargs.get(attr, None))
def __repr__(self):
return ', '.join(
['%s: %r' % (attr, getattr(self, attr)) for attr in self.__attrs])
OnCallData = []
for UserItem in objPolicyData['users']:
UserData = User()
UserData.Name = UserItem['name']
UserData.Mobile = UserMobile = getUserMobile(UserItem['id'])
for OnCall in UserItem['on_call']:
UserPolicy = OnCall['escalation_policy']
PolicyName = UserPolicy['name']
if PolicyName.lower().find('test') == -1:
UserData.Policy = PolicyName
UserData.LevelNo = OnCall['level']
UserData.Level = getLevel(OnCall['level'])
UserData.StartDate = getDate(OnCall['start'])
UserData.EndDate = getDate(OnCall['end'])
UserData.StartTime = getTime(OnCall['start'])
UserData.EndTime = getTime(OnCall['end'])
OnCallData.append(UserData)
OnCallData = sorted(OnCallData, key=itemgetter('LevelNo'))
サンプルデータは、あなたがitemgetter
をインポートする必要が
[
Policy: u'Network Team', Level: 'Backup On Call Engineer', LevelNo: 2, StartDate: 'Monday 02 May', EndDate: 'Monday 09 May', StartTime: '09:00AM', EndTime: '09:00AM', Name: u'John Smith', Mobile: u'07XXX',
Policy: u'System Administator Team', Level: 'Primary On Call Engineer', LevelNo: 1, StartDate: 'Tuesday 03 May', EndDate: 'Tuesday 03 May', StartTime: '09:00AM', EndTime: '05:00PM', Name: u'Billy Bones', Mobile: u'07XXX',
Policy: u'Network Team', Level: 'Primary On Call Engineer', LevelNo: 1, StartDate: 'Friday 29 April', EndDate: 'Tuesday 03 May', StartTime: '05:00PM', EndTime: '03:30PM', Name: u'Jim Bob', Mobile: '07XXX'
]
重複質問 - http://stackoverflow.com/questions/19553091/python-error-on-operator-keyword –
は、あなたも 'operator'モジュールをインポートしたことがありますか? –
hiはいiveインポートされた項目ゲッター、コードを追加 – AlexW