【问题标题】:TypeError: only() takes 2 positional arguments but 3 were givenTypeError: only() 接受 2 个位置参数,但给出了 3 个
【发布时间】:2020-05-23 06:41:35
【问题描述】:

在这里,我尝试使用 only() 从 cassandra 中仅获取两个字段,但是当我传递字段名称时,它给了我以上错误,我也尝试传递 self 但没有用。获得这两个字段后,我需要将它们转换为两个数组,以便我可以绘制带有名称和标记的图形。

代码如下:

from flask import *
from flask_cqlalchemy import CQLAlchemy

app = Flask(__name__)
app.config['CASSANDRA_HOSTS'] = ['127.0.0.1']
app.config['CASSANDRA_KEYSPACE'] = "emp"

db = CQLAlchemy(app)

class Student(db.Model):
    uid = db.columns.Integer(primary_key=True)
    marks = db.columns.Integer(primary_key=True)
    username = db.columns.Text(required=True)
    password = db.columns.Text()

    @app.route('/meriting')
    def show_meritlist():
        ob = Student.objects().filter().only(Student.marks, Student.username)
        ob = ob.filter(Student.marks >= 65).allow_filtering()
        return render_template('merit.html', ml = ob)

db.sync_db()
if __name__ == '__main__':
    app.run(debug = True)

【问题讨论】:

    标签: python-3.x flask cassandra cql


    【解决方案1】:

    only() 只接受一个应该是可迭代的参数。试试:

    ob = Student.objects().filter().only((Student.marks, Student.username))
    

    【讨论】:

    • 导致这个:TypeError: unhashable type: 'ColumnQueryEvaluator'
    • 对不起,我不知道。也许与这个datastax-oss.atlassian.net/browse/PYTHON-494(来自stackoverflow.com/questions/37011190/…)有关?您是否在同一行获得回溯?
    • 嗯,没关系。我指的是这个链接 docs.datastax.com/en/developer/python-driver/3.21/api/cassandra/…>
    • 您可能想问一个不同的问题或编辑这个问题,因为我的回答专门解决了您遇到的错误。这样,您可能会吸引了解您要实现的目标的人。祝你好运!
    猜你喜欢
    • 2021-02-02
    • 2020-03-27
    • 2022-01-19
    • 2017-02-18
    • 2021-01-22
    • 2020-01-06
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多