下标对象TypeError有问题:

2024-04-26 02:20:41 发布

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

我正在尝试让以下代码块正常工作:

for r in roles:
        role = Role.query.filter_by(name=r).first()
        if role is None:
            role = Role(name=r)
        role.permissions = roles[r][0]
        role.default = roles[r][1] 
        db.session.add(role)
    db.session.commit()

但是我得到了以下信息:

role.permissions = roles[r][0]
TypeError: 'int' object is not subscriptable

我试着做str(角色[r][0],但也没用。。。有什么想法吗?你知道吗

编辑:以下是词典代码:

def insert_roles():
    roles = {

    'User': (Permission.FOLLOW |
        Permission.COMMENT),

    'Moderator': (Permission.FOLLOW |
        Permission.COMMENT |
        Permission.MODERATE_COMMENTS, True),

    'Administrator': (0xff, False)
    }

Tags: 代码nameinpermissionsfordbissession
1条回答
网友
1楼 · 发布于 2024-04-26 02:20:41

(将我的评论转换为答案)

在您的代码中,roles['User']似乎是一个int。你忘了元组中的第二个布尔元素了吗?你知道吗

(Permission.FOLLOW | Permission.COMMENT)是一个int,甚至不是一个只有一个元素的元组。您可能需要将其更改为:

(Permission.FOLLOW | Permission.COMMENT, True) # Or False, however your case maybe.

相关问题 更多 >