首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:使用dateutil时“”str“”对象没有属性“”n“”

AttributeError:使用dateutil时“”str“”对象没有属性“”n“”
EN

Stack Overflow用户
提问于 2012-02-09 19:32:35
回答 2查看 3.3K关注 0票数 2

我正在使用dateutil rrule函数..我从django中的数据模型获取工作日。当我把它放入rrule函数中时,如下所示

代码语言:javascript
复制
for x in lgs:
    teams = Team.objects.filter(league=x.id)
    teamcount = len(teams)
    playdays = "rrule." + str(x.play_days)
    fixdays = rrule.rrule(rrule.DAILY,byweekday = (playdays),dtstart=startdate,until=endate)
    print list(fixdays)

Traceback (most recent call last):
File "<console>", line 5, in <module>
File "/usr/lib/pymodules/python2.7/dateutil/rrule.py", line 345, in __init__
    elif not wday.n or freq > MONTHLY:
AttributeError: 'str' object has no attribute 'n'

如果我正常使用该函数,并将第5行替换为

代码语言:javascript
复制
    fixdays = rrule.rrule(rrule.DAILY,byweekday = (rrule.SU, rrule.MO),dtstart=startdate,until=endate)

我一点问题都没有。可能出了什么问题。

EN

Stack Overflow用户

发布于 2012-02-09 19:42:49

“rrul.”+ str(x.play_days)返回一个字符串,而不是具有该名称的变量,而在您的硬编码示例中,您传递的是一组变量

你可能想做一些类似这样的事情:

代码语言:javascript
复制
playdays = [getattr(rrule, pd) for pd in x.play_days]

然后把playdays传递到byweekday,不带括号,像byweekday=playdays,.....正如eumiro在他的回答中所说的,这是没有必要的:)

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9210117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档