原因
使用python连接时序库influxdb
在使用代码进行查询influxdb库时调用query()方法异常
经过查询各种资源发现 这是因为python2.7.7版本以下不支持struct()方法进行对unicode数据的解析
,导致influxdb在进行query查询语句时报错
解决方法(不进行升级python版本)
进入所安装的python版本下的client.py文件
因各自的安装路径而异 ,我的路径为
/usr/lib/python2.7/site-packages/influxdb-5.3.1-py2.7.egg/influxdb/client.py
进入该文件后,寻找到_msgpack_parse_hook方法。具体代码内容大致为
def _msgpack_parse_hook(code, data):
if code == 5:
(epoch_s, epoch_ns) = struct.unpack(">QI", data)
timestamp = datetime.datetime.utcfromtimestamp(epoch_s)
timestamp += datetime.timedelta(microseconds=(epoch_ns / 1000))
return timestamp.isoformat() + 'Z'
return msgpack.ExtType(code, data)
将struct.unpack后的方法进行修改,结果为
def _msgpack_parse_hook(code, data):
if code == 5:
(epoch_s, epoch_ns) = struct.unpack(str(">QI"), data)
timestamp = datetime.datetime.utcfromtimestamp(epoch_s)
timestamp += datetime.timedelta(microseconds=(epoch_ns / 1000))
return timestamp.isoformat() + 'Z'
return msgpack.ExtType(code, data)
如此,解决问题!