如何在Python中从Cassandra获取列表(List)类型列的值
在Python中从Cassandra数据库获取List类型列的值
首先确保你已经安装了官方的Cassandra Python驱动:
pip install cassandra-driver
操作示例
假设你有一个名为users的表,结构如下:
CREATE TABLE users ( user_id UUID PRIMARY KEY, name TEXT, hobbies LIST<TEXT> );
- 连接集群并初始化会话
from cassandra.cluster import Cluster from cassandra.auth import PlainTextAuthProvider # 集群开启认证时需添加auth参数 auth_provider = PlainTextAuthProvider(username='your_username', password='your_password') cluster = Cluster(['127.0.0.1'], auth_provider=auth_provider) session = cluster.connect('your_keyspace_name') # 替换为你的keyspace名称
- 执行查询并提取List类型数据
Cassandra驱动会自动将数据库中的LIST类型映射为Python原生list,直接从结果对象中提取即可:
# 查询单条数据 user_id = 'your-user-uuid-here' result = session.execute("SELECT hobbies FROM users WHERE user_id = %s", (user_id,)) row = result.one() if row: user_hobbies = row.hobbies # 直接得到Python list print(user_hobbies) # 输出示例: ['reading', 'hiking', 'coding'] # 查询多条数据 results = session.execute("SELECT user_id, hobbies FROM users") for row in results: print(f"用户 {row.user_id} 的爱好: {row.hobbies}")
注意事项
- 如果List中存储的是复杂类型(比如
LIST<UDT>或LIST<TUPLE>),驱动会自动转换为对应的Python对象(自定义类或tuple),直接使用即可。 - 建议使用参数绑定(
%s占位符)编写查询,避免SQL注入风险。 - 查询完成后记得关闭集群连接:
cluster.shutdown()
内容的提问来源于stack exchange,提问作者Priya Baweja
相关产品推荐
相关产品推荐

