2016-08-13 4 views
0

ruby​​からPythonスクリプトを実行しています。しかし、私はルビーから私のカムpythonスクリプトにパラメータを渡している。渡されるべきパラメータは、その特定のインスタンスにあるいくつかの変数です。シナリオを説明する私のコードはここにあります。RubyのPythonコードを変数で実行しています

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

上記のコードは完全に機能します。しかし、paramsは、私が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)]) 
関連する問題