【问题标题】:pass array of dictionaries to python将字典数组传递给python
【发布时间】:2016-12-22 14:08:12
【问题描述】:

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

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

我已将它们全部附加到 shell 脚本中的数组中,并将它们作为 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 值作为字符串读取,然后我可以将其拆分为多个字典。

请帮我解决这个问题。

【问题讨论】:

  • 第 1 行缺少 ,
  • 尝试添加。没有任何区别。

标签: python arrays dictionary


【解决方案1】:

好像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"

【讨论】:

  • 谢谢,问题解决了。我将尝试从数组中形成一个 var。
【解决方案2】:

如果我理解得很好,您需要一个包含所有键的连接字典。见how to concatenate two dictionaries to create a new one in Python?

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 2019-02-11
    • 2017-01-14
    • 2018-12-23
    • 2016-01-30
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多