我在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 *
也会抛出异常。
答案 0 :(得分:2)
如果您在cassandra中插入和检索时间戳时遇到问题,那么您并不孤单,请看: How to insert a datetime into a Cassandra 1.2 timestamp column
解决方案可能是从日期时间开始计算unix时间戳(自纪元以来经过的ms),然后插入/检索它。
一般情况下,如果您确切地说明了错误消息(如果有的话),那么写一个有用的答案会有所帮助吗?那么,究竟是什么行代码导致错误?
答案 1 :(得分:1)
import json
import uuid
class UUIDEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, uuid.UUID):
return obj.hex
return json.JSONEncoder.default(self, obj)
j = json.dumps( invar, indent=4, separators=(',', ': '), cls=UUIDEncoder )