【问题标题】:TypeError: unsupported operand type(s) for &: 'list' and 'QueryInstance'TypeError:&:“list”和“QueryInstance”不支持的操作数类型
【发布时间】:2020-12-30 23:08:13
【问题描述】:

我正在尝试建立一个登录系统,用户输入将与 tinydb 的 json 文件进行交叉检查。我设法让注册工作,但是当我尝试登录时,我得到了这个错误。

TypeError: &: 'list' 和 'QueryInstance' 的操作数类型不受支持

我尝试删除密码验证并且它有效。不完全确定其背后的原因。如果我能就出了什么问题得到一些指导,那就太好了。谢谢!

def login():
    username = input("Enter Username: ")
    password = input("Enter Password: ")
    User = Query()
    if(db.search(User.username == username) & (User.password == password)):
        print("Login Successful!")
        loggedInScreen()
    else:
        print("Incorrect Username or Password")
        login()

【问题讨论】:

  • 我不知道图书馆,但你可能想用 and 替换 && 是逻辑位运算符

标签: python tinydb


【解决方案1】:

应该是and 而不是&。操作数 and 将检查您尝试验证的两个条件,而 & 执行按位 AND,它不喜欢为 bitwise AND 提供的数据类型,因此会出现错误。

【讨论】:

  • 谢谢!当我阅读 tinydb 的文档时,它说要使用 &。
【解决方案2】:

Python 中的& 是逻辑位运算符而不是条件运算符,因此将& 替换为and 应该可以正常工作

【讨论】:

    猜你喜欢
    • 2014-12-28
    • 2012-12-12
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多