gpt4 book ai didi

python - 使用 datastax Python Cassandra 驱动程序从文件执行 CQL 查询

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:05 26 4
gpt4 key购买 nike

我想做的是加载一个 CQL 文件以重新初始化(删除和创建)键空间中的所有表。

我在 https://datastax.github.io/python-driver/ 搜索了文档但没有找到任何直接的方法来实现这一目标。

SOURCE 不起作用,因为它是一个 cqlsh 命令。我试过读取文件作为输入并运行它,但遇到错误,因为 execute() 只运行一行。我最后的选择是解析文件并运行每个 CQL 命令,但这对于一个简单的请求来说会很麻烦。

目前,我得到的最接近的结果是在读取期间执行文件,如下所示。由于分号,这是我遇到 EOL 问题的地方。

with app.open_resource('schema.cql', mode='r') as f:
db.execute(f.read())

最佳答案

您可以读取整个文件,然后按 ; 字符拆分,如下面的代码所示。这个解决方案的缺点是它非常原始 - 它不处理可能存在于注释等中的 ; 字符。但是对于简单的情况,这可能没问题(恕我直言)...

with open('create_schema.cql', mode='r') as f:
txt = f.read()
stmts = txt.split(r';')
for i in stmts:
stmt = i.strip()
if stmt != '':
print('Executing "' + stmt + '"')
session.execute(stmt)

更新:如果您使用它来执行模式更改语句(创建/删除/更改),那么您需要在执行每条语句后检查模式协议(protocol)

关于python - 使用 datastax Python Cassandra 驱动程序从文件执行 CQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49863780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com