擅长:python、mysql、java
<p>我从@chander的优秀答案开始,但在shell/命令级别和python脚本中遇到了特殊字符转义的问题。将<code>JSON</code>保存到一个文件中,然后将该文件名作为参数传递给脚本是一个可能的解决方案,但在我的情况下,这将相当复杂</p>
<p>因此,我决定在参数级别对字符串进行url编码,并在<code>Python</code>脚本中对其进行解码。这意味着无论调用python脚本的是什么,都需要对命令行参数进行url编码,该参数是<code>JSON</code>字符串。有许多<a href="https://www.urlencoder.io/" rel="nofollow noreferrer">online tools</a>允许您使用url编码字符串进行沙箱处理。在我的例子中,<code>nodejs</code>脚本调用python脚本调用,并且可以轻松地对<code>JSON</code>进行url编码</p>
<p>在<code>Python</code>脚本中,它看起来是这样的(您不必使用<code>argparse</code>,但我喜欢它):</p>
<pre><code>import json
import argparse
from urllib.parse import unquote
# Set up CLI Arguments
parser = argparse.ArgumentParser()
# Required Arguments
parser.add_argument("-c", "--config", required=True,
help="JSON configuration string for this operation")
# Grab the Arguments
args = parser.parse_args()
jsonString = unquote(args.config)
print(jsonString)
config = json.loads(jsonString)
print(config)
</code></pre>