使用变量从ruby运行python代码

时间:2016-08-13 18:50:56

标签: python json ruby python-3.x

我正在从ruby运行python脚本。但我已经将参数传递给我从ruby中提取的python脚本。应该传递的参数是我在该特定实例中的一些变量。这是我的代码,用于说明该场景。

    #test.rb
    result = `python ml.py '{"a":1, "b":23, "c":2334,"d":2244}'`

上面的代码完美无缺。但是params是由我需要传递给python脚本的一些操作生成的。发送参数对我来说是个问题。这是我实施的代码。

     #testvar.rb          
     params = manipulate_data              # This gives result in json format
     #result `python ml.py 'params'`        # Not working 

我也尝试了其他方法但不适合我。

1 个答案:

答案 0 :(得分:0)

试试这个:

$ cat d.py
import json
import sys
from collections import OrderedDict
print json.loads(sys.argv[1], object_pairs_hook=OrderedDict)
$ cat a.rb
require 'json'
params = {"a":1, "b":23, "c":2334,"d":2244}.to_json
result = `python d.py '#{params}'`
puts result
$ ruby a.rb
OrderedDict([(u'a', 1), (u'b', 23), (u'c', 2334), (u'd', 2244)])