2016-08-13 94 views
0

我從ruby運行python腳本。但我已經傳遞參數給Python腳本,我從紅寶石凸輪。應該傳遞的參數是我在該特定實例中的一些變量。這是我的代碼,說明這種情況。從變量中運行python代碼

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

上面的代碼完美地工作。但參數是從我需要傳遞給python腳本的一些操作中生成的。發送params是我的問題。這是我實施的代碼。

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

我嘗試了其他方法,但也不適合我。

回答

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)])