首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将从qpython获得的Qtable转换为格式化字符串的简单方法

将从qpython获得的Qtable转换为格式化字符串的简单方法
EN

Stack Overflow用户
提问于 2018-06-15 19:14:38
回答 2查看 537关注 0票数 1

嗨,我是python和q/KDB的新手。我使用qpython从kdb数据库获取结果,执行以下操作:

代码语言:javascript
复制
q = qconnection.QConnection(host=self.host, port=self.port, username=self.username, password=self.password)
results = q.sync(query)

结果是一个qtable。我需要将qtable转换成一个直接的字符串。我只需要这样做:

代码语言:javascript
复制
resultString = str(results)

然而,字符串有点复杂。这并不是说该表包含日期并且它们是以数字格式出现的。resultsString看起来像这样:

代码语言:javascript
复制
[(6606, b'XX', b'5Y', 26.67, 0.023, 4.833, -22.88, 0.4, b'sx, 570869003211035000)

 (6607, b'XX', b'5Y', 28.40, 0.025, 4.824, -22.75, 0.4, b'sx, 571128191858653000)]

我想知道qtable是否有简单的转换方法,可以将字符串转换成下面这样的形式:

代码语言:javascript
复制
2018-02-01,XX,5Y,26.67,0.023,4.83,-22.88,0.4,sx,2018-02-02D06:43:23\n

2018-02-02,XX,5Y,28.40,0.025,4.82,-22.75,0.4,sx,2018-02-05D06:43:11\n
EN

回答 2

Stack Overflow用户

发布于 2018-06-15 21:46:25

您可能只想在从kdb中取出表时使用字符串,而不是在python中。它会得到您想要的东西,但在python端处理数据并不容易或效率也不高

代码语言:javascript
复制
q)csv 0: select from t
"col1,col2"
"a,1"
"b,2"
"c,3"

尝试发出q.sync("csv 0: select from t")

票数 1
EN

Stack Overflow用户

发布于 2018-06-16 07:01:23

将数值列转换为string可以获得您想要的结果。

代码语言:javascript
复制
results = q.sync('t:([] 2?.z.d;2?.z.t;2?`3;p:2?100.);update string d, string t, string p from t')

for item in results:
     t = ()
     for x in item:
         t = t + (x.decode(),)     
     print(t)

('2017.05.31', '16:46:10.161', 'jgj', '43.9081')
('2006.09.28', '19:44:11.560', 'cfl', '57.59051')
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50874453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档