小编Emi*_*ily的帖子

如何使用Python订阅Websocket API通道?

我正在尝试订阅Bitfinex.com websocket API公共频道BTCUSD.

这是代码:

from websocket import create_connection
ws = create_connection("wss://api2.bitfinex.com:3000/ws")
ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send("LTCBTC")
while True:

    result = ws.recv()
    print ("Received '%s'" % result)

ws.close()
Run Code Online (Sandbox Code Playgroud)

我相信ws.send("BTCUSD")订阅公共频道的是什么?我收到一条消息,我认为确认订阅({"event":"info","version":1},但我之后没有得到数据流.我错过了什么?

更新:这是最终有效的代码.

import json

from websocket import create_connection
ws = create_connection("wss://api2.bitfinex.com:3000/ws")
#ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send(json.dumps({
    "event": "subscribe",
    "channel": "book",
    "pair": "BTCUSD",
    "prec": "P0"
}))


while True:
    result = ws.recv()
    result = json.loads(result)
    print ("Received '%s'" % result)

ws.close()
Run Code Online (Sandbox Code Playgroud)

python api websocket python-3.x

17
推荐指数
1
解决办法
1万
查看次数

如何向Phoenix项目添加CSS/JS依赖项?

我正在尝试将jquery添加到Phoenix项目中.

当我在头标记的app.html.eex中链接到jquery,如下所示:

<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

...有用.

但是,我不想要Web依赖.我想在应用程序中使用jquery.

我已将jquery.min.js复制到web/static/js目录.并在app.html.eex中引用它,如下所示:

<script src="<%= static_path(@conn, "/js/jquery.min.js") %>"></script>
Run Code Online (Sandbox Code Playgroud)

它不起作用.

将jquery.min.js复制到app.js也不起作用.

有趣的是,当我直接在app.html.eex中将脚本标记放在JS之间时,它可以工作.

只有来自云的直接链接和/或将JS放在app.html.eex中的脚本标记之间才能正常工作?

更新:

早午餐正在将JS复制到priv目录中的app.js. 但是应用程序似乎无法访问它.

我究竟做错了什么.

jquery elixir brunch phoenix-framework

12
推荐指数
3
解决办法
7215
查看次数

如何在Elixir中格式化数字?

Elixir中最直接,最有效的方法是什么?

Starting number: 123.101

Ending number: 123.101000 # Adding 3 digits to the precision of a float.

Starting number: 123

Ending number: 123.000 # Adding 3 digits to the precision of an integer.

Starting number: 123.101

Ending number: 123.1 # removing precision

Starting number: 123.000

Ending number: 123 # removing precision
Run Code Online (Sandbox Code Playgroud)

elixir

10
推荐指数
4
解决办法
6384
查看次数

如何截断十进制类型并保留为十进制类型而不进行舍入?

我需要截断十进制类型而不进行舍入并保留十进制类型,以尽可能高效的处理器方式.

我认为数学选项会返回一个浮点数.

量化选项返回我认为的舍入数字.

Str选项是处理器成本高昂的方式.

是否有一种简单直接的方法可以简单地将十进制类型的数字切除超过指定的十进制长度?

python python-3.x

8
推荐指数
1
解决办法
682
查看次数

如何挑选包含模块和类的字典?

我需要为字典键分配一个模块和类.然后挑选那个字典来存档.然后,加载pkl文件,然后根据该字典键值导入并实例化该类.

我试过这个:

import module_example
from module_example import ClassExample

dictionary = {'module': module_example, 'class': ClassExample)
Run Code Online (Sandbox Code Playgroud)

但它不会在pkl文件中存储对module_exmaple.py的引用.

我尝试过使用字符串而不是模块和类名的解决方法.但如果模块名称被重构或位置在路上发生变化,那将导致混乱.

无论如何直接这样做吗?以某种方式在字典中存储对模块和类的引用,然后根据该引用导入和实例化?

python pickle python-3.x

7
推荐指数
1
解决办法
451
查看次数

可变Arity Elixir函数的最佳实践?

在Elixir中处理变量arity的最佳实践是什么,而不会造成不必要的复杂性和案例匹配?

Python示例:

def function_with_optional_param(param1, param2, param3=None):
    if not param3:
        param3 = "Whatever"

    return
Run Code Online (Sandbox Code Playgroud)

如何在Elixir中最好地处理param3?

elixir

6
推荐指数
1
解决办法
532
查看次数

在 Pycharm 之外运行脚本时找不到导入?

我有一个这样构建的项目......

main.py 从子文件夹导入脚本,如下所示:

from controllers.available_balances_controller import available_balances_controller
Run Code Online (Sandbox Code Playgroud)

子文件夹:

  • 楷模
  • 意见
  • 控制器

在 Pycharm 中运行 main.py 时,它可以查找。

当我尝试在终端中运行时,出现导入错误:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    from controllers.available_balances_controller import available_balances_controller
ImportError: No module named controllers.available_balances_controller
Run Code Online (Sandbox Code Playgroud)

我在 main.py 中导入的脚本错误吗?

进行导入的正确方法是什么?

pycharm python-3.x

5
推荐指数
1
解决办法
1611
查看次数

如何将Elixir依赖项导入当前文件/模块

我正在尝试使用十六进制打包的CSV。

我将依赖添加到mix.exs中,如下所示:

  def application do
    [applications: [:logger, :csv]]
  end

  defp deps do
    [
      {:csv, "~> 1.4.2"}
    ]
Run Code Online (Sandbox Code Playgroud)

然后,我运行mix deps.getmix deps.compile在终端。

依赖文件夹显示在deps文件夹中。

在尝试使用依赖项之前,一切似乎都还不错。我收到此错误:

“未加载模块CSV,无法找到”

我试过一个简单的用途,而无需像这样导入:

File.stream!("data.csv") |> CSV.decode
Run Code Online (Sandbox Code Playgroud)

我试过像这样导入:

import(CSV)
File.stream!("data.csv") |> CSV.decode
Run Code Online (Sandbox Code Playgroud)

我试过为deps目录加上前缀:

import(deps.CSV)
File.stream!("data.csv") |> CSV.decode
Run Code Online (Sandbox Code Playgroud)

以及deps子目录的完整路径:

import(deps.csv.lib.csv.CSV)
File.stream!("data.csv") |> CSV.decode
Run Code Online (Sandbox Code Playgroud)

无论似乎没有找到依赖模块。

我想念什么?

elixir elixir-framework phoenix-framework

5
推荐指数
1
解决办法
583
查看次数

为单个文件禁用 EsLint 不起作用

我有一个使用 Webpack 初始化的 VueJS 项目,并启用了 Eslint。

我正在尝试使用标签禁用文件......

/* eslint-disable */
Run Code Online (Sandbox Code Playgroud)

...在文件的顶部。

它不起作用。

我尝试过其他组合:

/*eslint-disable no-alert, no-console */

/* eslint-disable no-alert */
Run Code Online (Sandbox Code Playgroud)

它仍然没有在文件级别禁用?

我需要在 Webpack 配置文件中禁用此功能吗?

是否有一些更简单的方法可以在文件级别禁用?

eslint webpack vuejs2

5
推荐指数
1
解决办法
1814
查看次数

凤凰1.2不会升级到1.3?

我目前在OSX上运行Phoenix 1.2.4.我正在尝试使用以下方法升级到1.3:

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Run Code Online (Sandbox Code Playgroud)

它不会给我一个错误,但也不会升级.我错过了什么?

这是终端输出:

Mb:~t9 $ elixir -v rlang/OTP 20 [erts-9.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe ] [kernel-poll:false]

Elixir 1.5.2

Mb:~t9 $ mix archive.install https://github.com/phoenixframework/ar chives/raw/master/phx_new.ez

找到现有条目:/Users/t9/.mix/archives/phx_new

您确定要更换它吗?

" https://github.com/phoenixframework/archives/raw/master/phx_new.ez "?[Yn] y

  • 创建.mix/archives/phx_new

Mb:~t9 $ mix phoenix.new --version

凤凰城v1.2.4

elixir phoenix-framework

3
推荐指数
1
解决办法
179
查看次数