2016-08-16 69 views
-1

我有建立一个字典样结构多次迭代的一个bash脚本,如下所示:字典的通阵列到Python

{ "a":"b", "c":"d", "e":"f"} 
{ "a1":"b1", "c1":"d1", "e1":"f1", "g1":"h1" } 

我在外壳脚本所附它们全部的阵列,他们是作为python脚本的输入,我希望上面的数据被解析为字典列表。

我尝试了一些这样的事情,但没有奏效。

var=({ "a":"b", "c":"d", "e":"f"} { "a1":"b1", "c1":"d1", "e1":"f1", "g1":"h1" }) 

function plot_graph { 
RESULT="$1" python - <<END 
from __future__ import print_function 
import pygal 
import os 
import sys 
def main(): 
    result = os.getenv('RESULT') 
    print(result) 
    if __name__ == "__main__": 
    main() 
END 
} 
plot_graph ${var[@]} 

参数正在拆分,它们不被视为单个变量。

Out of result will be :[ {"a":"b", ] 

其中,我希望整个var值被读为一个字符串,然后我可以将它分成多个字典。

请帮我解决这个问题。

+0

缺少','在第1行上 –

+0

尝试添加。没有任何区别。 – Bharath

回答

0

似乎的plot_graph $var

问题下面的代码应该工作:

var="({ 'a':'b', 'c':'d', 'e':'f'} { 'a1':'b1', 'c1':'d1', 'e1':'f1', 'g1':'h1' })" 

echo $var 



function plot_graph { 
echo $1 
RESULT="$1" python - <<END 
from __future__ import print_function 
import os 
import sys 
def main(): 
    result = os.getenv('RESULT') 
    print(result) 
if __name__ == "__main__": 
    main() 
END 
} 
plot_graph "$var" 
+0

谢谢,解决了这个问题。我将尝试从数组中构建一个var。 – Bharath