lebel_months = []
members_exps = []
for member in team.members.all():
qs = Profile.objects.expenses_per_month(member.user)
clr = color_picker()
member_qs = []
for exp in qs:
user = get_object_or_404(User, id=exp.user_id)
month = exp.month
summary = exp.sum
if month not in lebel_months and month is not None:
lebel_months.append(month)
if month is not None and summary is not None:
member_qs.append({
'user': user.username,
'clr': clr,
'month': month,
'summary': summary})
if member_qs:
members_exps.append(member_qs)
print(members_exps[0])
print(members_exps.first())
输出:使用[0]时,一切正常
[{'user': 'serj', 'clr': '#71CABC', 'month': datetime.datetime(2020, 3, 1, 0, 0, tzinfo=<UTC>),
'summary': 128400}, {'user': 'serj', 'clr': '#71CABC', 'month': datetime.datetime(2020, 4, 1, 0, 0,
tzinfo=<UTC>), 'summary': 53500}]
带有第一个((
AttributeError: 'list' object has no attribute 'first'
首次打印报表有效。第二个print语句捕获错误。我做错了什么?
首先,members_exps=[]声明List类型。
Lists/Arrays没有first((方法。有一个可用方法列表:https://www.w3schools.com/python/python_ref_list.asp
如果你想获得列表的第一项,你可能有兴趣阅读以下线程:Python习惯用法返回第一项或None
正如错误所说,members_exps变量是一个列表,在python列表中没有first((属性/函数。first只适用于数据帧。