我想以原始格式将json字符串从python代码传递到shell脚本,如
json_val = check_input_file['Item']['mappings']['S']
print(json_val)
上述代码的输出为:
{
"1": [
"skipColumn"
],
"2": [
"firstname"
],
"3": [
"lastname"
],
"4": [
"email"
],
"5": [
"skipColumn"
],
"6": [
"ipaddress"
]
}
现在我将json_val
传递给shell-like:
init_script = '''#!/bin/bash
FOO="{0}"
echo $FOO
'''.format(json_val)
在FOO变量中,我得到了不带双引号的字符串,但我希望它与上面相同
我试过这样的东西
MAPPINGS=$(cat <<EOF
{"1":["skipColumn"],"2":["firstname"],"3":["lastname"],"4":["email"],"5":["skipColumn"],"6":["ipaddress"]}
EOF
)
但这不是我想要的
我错过什么了吗
您需要转义
json_val
以使用shell,否则在shell执行引号删除时将删除双引号还需要将
$FOO
用双引号括起来,否则在shell执行分词之后,它的内容中会丢失换行符Online demo
相关问题 更多 >
编程相关推荐