将字典数组传递给python
Posted
技术标签:
【中文标题】将字典数组传递给python【英文标题】:pass array of dictionaries to 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 行缺少,
尝试添加。没有任何区别。
【参考方案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?
【讨论】:
以上是关于将字典数组传递给python的主要内容,如果未能解决你的问题,请参考以下文章
使用 almaofire 快速获取字典的所有值并传递给视图控制器