- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过在 pyq 中运行以下代码将数据更新到展开的 kdb 数据库...
from bittrex.bittrex import Bittrex, API_V2_0
from datetime import datetime
import time
from pyq import q, K
get_bittrex = Bittrex(None, None)
starttime = time.time()
q.set(':db/alpha/', q('.Q.en', ':db', q('([]Name:`$(); Ask:`float$(); Bid:`float$(); Last:`float$(); Volume:`float$(); Time:`timestamp$())')))
while True:
market_result = get_bittrex.get_market_summaries()['result']
for res in market_result:
market_name = res['MarketName']
ask = float(res['Ask'])
bid = float(res['Bid'])
last = float(res['Last'])
volume = float(res['Volume'])
dt = res['TimeStamp']
if market_name in ['USDT-BTC', 'USDT-ETH', 'USDT-LTC', 'USDT-XRP', 'USDT-NEO', 'USDT-BCC', 'USDT-ZEC', 'USDT-XMR', 'USDT-DASH']:
ts = datetime.strptime(dt, '%Y-%m-%dT%H:%M:%S.%f')
data = [market_name[5:], ask, bid, last, volume, ts]
q.upsert(':db/alpha/', q('.Q.en', ':db', [data]))
q.get(':db/alpha/').show()
time.sleep(30.0)
它不断抛出相同的错误:_k.error: type
。我相信这是因为我没有在我的 q.upsert
中一次登记一行附加的数据。
当我在非展开的 table 上使用相同的脚本时,它工作正常......
from bittrex.bittrex import Bittrex, API_V2_0
from datetime import datetime
import time
from pyq import q, K
get_bittrex = Bittrex(None, None)
starttime = time.time()
q.set(':alpha', q('([]Name:`$(); Ask:`float$(); Bid:`float$(); Last:`float$(); Volume:`float$(); Time:`timestamp$())'))
while True:
market_result = get_bittrex.get_market_summaries()['result']
for res in market_result:
market_name = res['MarketName']
ask = float(res['Ask'])
bid = float(res['Bid'])
last = float(res['Last'])
volume = float(res['Volume'])
dt = res['TimeStamp']
if market_name in ['USDT-BTC', 'USDT-ETH', 'USDT-LTC', 'USDT-XRP', 'USDT-NEO', 'USDT-BCC', 'USDT-ZEC', 'USDT-XMR', 'USDT-DASH']:
ts = datetime.strptime(dt, '%Y-%m-%dT%H:%M:%S.%f')
data = [market_name[5:], ask, bid, last, volume, ts]
q.upsert(':alpha', [data])
q.get(':alpha').show()
time.sleep(30.0)
并且,当我尝试同时手动设置和更新插入 2 行时,它会返回预期结果...
(pyq36-64) ❯ pyq
Python 3.6.3 (default, Nov 30 2017, 16:33:45)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> q.set(':db/alpha/', q('.Q.en', ':db', q('([]Name:`$(); Ask:`float$(); Bid:`float$(); Last:`float$(); Volume:`float$(); Time:`timestamp$())')))
k('`:db/alpha/')
>>> q.upsert(':db/alpha/', q('.Q.en', ':db', q('([]Name:`f`g; Ask:70.0 80.0; Bid:60.0 70.0; Last:50.0 60.0; Volume:645.32 745.33; Time:2017.12.19D19:10:09.697000000 2017.12.19D19:10:09.697000000)')))
k('`:db/alpha/')
>>> q.get(':db/alpha/').show()
Name Ask Bid Last Volume Time
------------------------------------------------------
f 70 60 50 645.32 2017.12.19D19:10:09.697000000
g 80 70 60 745.33 2017.12.19D19:10:09.697000000
>>> q()
q)\ls -l -a db/alpha
"total 64"
"drwxr-xr-x 10 marrowgari staff 340 Dec 19 16:42 ."
"drwxr-xr-x 4 marrowgari staff 136 Dec 19 15:59 .."
"-rw-r--r-- 1 marrowgari staff 38 Dec 19 16:42 .d"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Ask"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Bid"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Last"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Name"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Time"
"-rw-r--r-- 1 marrowgari staff 16 Dec 19 16:19 Vol"
"-rw-r--r-- 1 marrowgari staff 32 Dec 19 16:42 Volume"
q)
如何将变量 data
从上面的代码插入到展开的表格中?
q.set(':db/alpha/', q('.Q.en', ':db', q('([]Name:`$(); Ask:`float$(); Bid:`float$(); Last:`float$(); Volume:`float$(); Time:`timestamp$())')))
q.upsert(':db/alpha/', q('.Q.en', ':db', [data]))
最佳答案
当您提出有关 SO 的问题时,请努力使用可以轻松重现的代码来提出您的问题。理想情况下,尝试在没有第三方软件包的情况下重现您的问题。在您的具体案例中,问题与 Bittrex API 无关,可以简单地表示为
>>> q.set(':db/alpha/', q('.Q.en[`:db]', q('([]Name:`$(); Ask:`float$())')))
k('`:db/alpha/')
>>> data = ['A', 70.0]
>>> q.upsert(':db/alpha/', q('.Q.en', ':db', [data]))
Traceback (most recent call last):
..
_k.error: type
错误的原因是 .Q.en
需要一个表,其中 q 是一个字典列表,而您传递了一个列表列表。
一种解决方案是在将数据传递给 q 之前将其转换为字典:
>>> data_dict = {a:b for a, b in zip(['Name', 'Ask'], data)}
>>> q.upsert(':db/alpha/', q('.Q.en', ':db', [data_dict]))
k('`:db/alpha/')
另一个(可能更快)的解决方案是枚举 data
中的字符串元素:
>>> data[0] = q('`:db/sym?', data[0])
>>> data
[k('`sym$`A'), 70.0]
并使用insert将数据附加到表的函数:
>>> q.insert(':db/alpha/', data)
k(',1')
关于python - PyQ:q.upsert 到展开表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47895776/
例子一 function first(a, b) { return a + b; } function second() { return Math.floor(Math.sqrt(a
我想证明或证伪forall (P Q : Prop), (P -> Q) -> (Q -> P) -> P = Q.在柯克。这是我的方法。 Inductive True2 : Prop := | O
程序提取数字,我希望它继续循环,直到用户键入“Q”/“q”键。例如,当用户按下“O”键时,程序应打印他们输入的数字的个位数,对于用户输入的任何 3 位数字,依此类推。当我现在运行代码时,没有输出,但也
我收到以下代码的警告,我不明白为什么。 类似于这个问题:Unhandled rejection reasons (should be empty) 但是…… 我很确定我正在处理所有错误,那么为什么会出
我正在使用 Express 构建一个博客站点,并且是第一次使用 Q,我希望能够利用资深 Q 用户的知识。 我向我的数据库发出一个请求以加载帖子数据,另一个请求命中 Instagram API(除非它已
我刚刚找到有关 apache solr 的信息,并且在我成功安装了带有 Tomcat 的 apache Solr 之后。然后我开始使用 Apache Solr 进行搜索。 但我对 Apache Sol
我在 Stack Overflow post 上看到了下图 但是,我对“p OR q”、“p AND q”的结果感到困惑,其中“p”等于“false”,“q”等于“unknown”。 在图中,“p O
有人向我提出了这个问题。 n = 77 n = p*q p and q is a prime number 用蛮力找到p和q。 到目前为止我的代码: public class If { pub
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 4 年前。 Improve
我注意到如果 .then()回调由于任何错误(例如对 undefined variable 的操作)而失败,并且没有 .catch()相关联,该错误将被静默忽略。 这在开发过程中很不舒服。 例如,此代
以下示例打印“SAME”: if (q/\\a/ eq q/\a/) { print "SAME\n"; } else { print "DIFFERENT\n"; } 我理解这与 d
我画了 qq 图多元回归,得到了下面的图。谁能告诉我为什么红线下面有两个点?这些点对我的模型有影响吗? 我使用下面的代码来绘制图表。 from sklearn.linear_model import
我确定 int q[6][4] 中的 q 的类型为 (**q)[4],即, 指向大小为 4 的整数数组的指针。但是我的书(我发现它很可疑!!)说函数定义中的 int q[][4] 部分 void fo
我试图用 tatics [intros]、[apply]、[assumption]、[destruct]、[left]、[right]、[split] 来证明这个引理,但失败了。谁能教教我怎么证明?
使用 q.all 时,我的数组中的立即函数似乎没有执行。每个函数都应该创建一个已解决的 promise ,将其打印到控制台,然后返回它。我没有看到控制台输出,但 Q.all 似乎很满意,并用 2 个空
我想在 OpenAI 的 Bipedal Walker v2 中实现 Q 学习,但在寻找教程后,它们似乎总是有限环境,这使得 Q 矩阵和奖励矩阵易于初始化。 例如:http://mnemstudio.
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在创建一个基于 AngularJS、Breeze 和 RequireJS 的单页应用程序。在使用 requirejs 设置 AMD 以使用 Angular 和 Breeze 时,我遇到了 Bree
这个问题在这里已经有了答案: Difference between defer().promise and Promise (1 个回答) 关闭 6 年前。 在 Angular 中,以下代码片段似乎
我写了一个 tcp 服务器和一个 tcp 客户端,客户端只向服务器发送数据并打印它写入了多少字节,服务器只接受连接,然后我使用 netstat 显示套接字的 Recv-Q 和 Send-问,我发现 R
我是一名优秀的程序员,十分优秀!