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?
问题是
下面的代码不工作:
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" |