2016-08-16 68 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