2

我正在使用 python Cassandra 驱动程序来查询数据库。这是我运行的代码:

from cassandra.cluster import Cluster
from cassandra.query import dict_factory

ips = [...]
cluster = Cluster(ips)
session = cluster.connect()
session.row_factory = dict_factory
session.set_keyspace("mykeyspace")
response = session.execute("SELECT * FROM myDB WHERE mykey = 'xyz';")

在输出中,我在单词前面得到了奇怪的 'n's,而换行符曾经是。

例子:

“在寒冷的森林上空,狂风怒吼没有叶子可吹。”

有没有办法解决这个问题?

4

1 回答 1

0

问题在于您的数据摄取,或者response驱动程序读取中没有消耗的任何内容。它是n存储在您的数据库中的,而不是\n字符。python驱动程序不会从原始字节转义或做任何事情,而是转换为字符串:https ://github.com/datastax/python-driver/blob/9869c2a044e5dd76309026437bcda5d01acf99c7/cassandra/cqltypes.py#L693

如果你插入一个\n你会得到一个退出:

session.execute('CREATE TABLE mydb (mykey text PRIMARY KEY, mycolumn text);')
session.execute("INSERT INTO mydb (mykey, mycolumn) VALUES ('xyz', 'a\nb');")
response = session.execute("SELECT * FROM myDB WHERE mykey = 'xyz';")
for line in response:
   print line['mycolumn']

正确输出:

a
b

之后有什么东西会被拿走response和逃跑吗?

于 2017-11-11T08:41:21.773 回答