【问题标题】:How to store PagingState in Cassandra Python driver?如何在 Cassandra Python 驱动程序中存储 PagingState?
【发布时间】:2023-04-08 01:38:01
【问题描述】:

我正在实现一个 REST API,它在后台查询 Cassandra(通过 Python 驱动程序)并返回结果。现在要查询的项目会很大,所以我想有分页能力。

execute() 方法返回的ResultSet 有一个名为paging_state 的属性,它似乎是字节文字。我想用startKey=<PAGING_STATE_VALUE> 之类的东西在响应正文中返回它。目前,我看到分页状态类似于b'\x0cFY5D70822742\x00\xf0\x7f\xff\xff\xe6\x00'

我应该如何对其进行解码,以便可以将其作为正确的字符串附加到我的 API 响应正文中。我尝试使用UTF-8ASCII 进行解码,但都失败了。

【问题讨论】:

    标签: python-3.x cassandra pagination python-bytearray


    【解决方案1】:

    根据定义,分页状态是二进制的,不会表示为字符串。

    只需将其编码为 base64、带引号的可打印、uuencode 或十六进制字符串 - 例如使用内置 binascii 模块。那里有很多函数,比如 hexlify 可以将字节转换为十六进制字符串。

    【讨论】:

    • 哇。这有帮助。我使用binascii.hexlify(paging_state).decode() 给出一个十六进制字符串作为响应,当API 请求具有startKey 的某些值时,我通过binascii.unhexlify(startKey) 将其转换为二进制数据
    猜你喜欢
    • 2018-04-24
    • 2015-04-12
    • 2017-11-26
    • 2018-06-15
    • 2018-11-10
    • 2017-05-31
    • 1970-01-01
    • 2023-03-26
    • 2016-10-02
    相关资源
    最近更新 更多