将字典数组传递给python

pass array of dictionaries to python

我有一个bash脚本,它为多个迭代构建一种字典类型的结构,如下所示:

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

我已经将它们全部附加到shell脚本中的一个数组中,并将它们作为Python脚本的输入进行馈送,我希望将上述数据解析为字典列表。

我试过这样的东西,但没用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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[@]}

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

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

在这里,我希望整个var值作为一个字符串读取,然后我可以将其拆分为多个字典。

请帮我克服这个。


如果我理解得好,你想要一concatenated字典所有的钥匙。如何合并两个湖新词典创建一个Python?


问题是plot_graph $var

下面的代码不工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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"