ADJ*_*ADJ 7 python json python-2.7
我想编写一个脚本,它接受一个参数,一个包含一些 json 数据的字符串,并且(为了简单起见)打印一些东西。
import argparse
import json
parser = argparse.ArgumentParser(description='json load and print')
parser.add_argument('-i','--inputstring', help='Input String in JSON format',required=True)
args = parser.parse_args()
inp = parser.parse_args()
data = json.loads(inp)
print(data['Employees'])
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行它时,我收到一个错误,因为我用来包装字符串的双引号以匹配 json 中的双引号结尾:
python myscript.py -i "{ "Employees": "name name"}"
Unrecognized arguments Employees...
Run Code Online (Sandbox Code Playgroud)
如果我将 json 双引号切换为单引号,则 json 解析器将不起作用。
我如何处理这样的事情?
如果您更改分配输入变量的方式,您的代码将按预期工作。改变这一行:
inp = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
到
inp = args.inputstring
Run Code Online (Sandbox Code Playgroud)
parse_args()返回一个argparse.Namespace对象,因此您需要在将其传递给解析器之前从该对象检索输入。此外,您需要在 shell 命令中转义双引号。通过上述更改运行,我得到了预期的输出:
python myscript.py -i "{ \"Employees\": \"name name\"}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8947 次 |
| 最近记录: |