我正在从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
我也尝试了其他方法但不适合我。
答案 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)])