taosdata/taos-connector-python

binary字段传入字符解析可能会报错

johnnylc opened this issue · 5 comments

您好应用场景为网络数据包监听收集,网络原始数据包为bytes类型,在taos数据库中采用binary类型字段存储。
进行数据查询时可能会出现报错:
time_str = '2021-12-02 14:40:39.828'
result = db_connection.query("select * from nd_002 where ts = '%s'" % time_str)
for row in result:
print("result data length:", len(row[4]))
print(row)

image

微信截图_20211202143333

谢谢!这里显然需要原始bytes类型,我周一会提供一个新版本。

好的 谢谢您的回复

谢谢!这里显然需要原始bytes类型,我周一会提供一个新版本。
您好,请问能够提供bytes类型存取的示例吗?
我使用的stmt API进行数据insert,其中pkt[Raw].load为原始数据帧,数据类型为bytes供后续取出(以bytes形式)解析使用。
尝试过encode,decode方式,但是由于实际的数据帧并不代表字符串,不一定符合utf-8等等编码规则,导致可能出现报错,所以是否有更合适的方式进行bytes类型的存取呢?

stmt = db_connection.statement("insert into nd_002 values(?,?,?,?,?,?)")
params = taos.new_bind_params(6)
params[0].timestamp(pkt[IP].time)
params[1].nchar(src_ip)
params[2].nchar(dst_ip)
params[3].nchar("UDP")
params[4].binary(pkt[Raw].load)
params[5].nchar(json_data)
stmt.bind_param(params)
stmt.execute()

谢谢!这里显然需要原始bytes类型,我周一会提供一个新版本。

请问现在有新的进展吗?

谢谢!这里显然需要原始bytes类型,我周一会提供一个新版本。

请问现在有新的进展吗?

这个场景用 blob 更合适一些,TDengine 新版本将会支持,暂时关闭。请关注 TDeninge 新版本进展。谢谢!