【发布时间】:2013-07-30 05:05:28
【问题描述】:
我在 Cassandra 中使用 CQL3 创建了下表:
CREATE TABLE user_log (
user_id text,
zone_id text,
freq int,
time timestamp,
PRIMARY KEY (user_id, zone_id)
)
我使用datastax Cassandra-Python 驱动程序将一些值插入到此表中,如下所示:
fmt = '%m/%d/%Y %H:%M'
t1 = datetime.strptime("01/01/2000 22:05", fmt)
prepared = session.prepare("""
INSERT INTO user_log (user_id,zone_id,freq,time) VALUES (?,?,?,?)
""")
session.execute_async(prepared.bind((str(Uid),str(zone_id),int(freq),t1 )))
插入没问题,但是当我尝试检索值时,它在检索时间值时抛出异常。所有其他列的检索工作正常。 Select * 也会抛出异常。
【问题讨论】:
-
请详细说明一下。您是否尝试在 cqlsh 中执行
select * from user_log?异常消息到底是什么? -
嗯,很奇怪。我将检索到的结果转储到 json 中,它会引发异常。当我尝试将其打印到控制台时,它工作正常。关于可能是什么原因的任何想法。检索到的时间戳以逗号分隔。 time=datetime.datetime(2013, 2, 5, 7, 37)
-
似乎时间戳没有正确转储到 json 中。否则它工作正常。
-
JSON 没有日期/时间/时间戳类型,因此通常 JSON 库在尝试转换本机日期/时间/时间戳时会出错。但是许多 JSON 库允许您提供自定义编码器/解码器。