Python 通过命令提示符传递json

Python 通过命令提示符传递json,python,json,python-3.x,command,prompt,Python,Json,Python 3.x,Command,Prompt,我通过命令提示符将以下json作为 $python new.py {'scenarioId':'null','scenarioName':'EC_02','scenarioDesc':'EC_02','riskEngine':'null'} 当我运行以下命令时: import sys import json str_json = sys.argv[1].replace("'", '"') try: d = json.dumps(str_json) dat = json.loa

我通过命令提示符将以下json作为

$python new.py {'scenarioId':'null','scenarioName':'EC_02','scenarioDesc':'EC_02','riskEngine':'null'}
当我运行以下命令时:

import sys
import json
str_json = sys.argv[1].replace("'", '"')

try:
    d = json.dumps(str_json)
    dat = json.loads(b)
    print("Stress JSON is as follows \n",dat)
except json.decoder.JSONDecodeError:
    print("Not a valid JSON")

print(dat['scenarioId'])
这是一个有效的json,但我得到的错误是:最后一行的字符串索引必须是整数。 当我在代码本身中将其初始化为str_json时,它工作得很好。
如何解决这个问题?

在您的代码中,当您使用
a_json=json.loads(b)
时,
b
变量的类型仍然是字符串,将其转换为json:
a_json=json.loads(json.loads(b))

代码:

输出:

Stress JSON is as follows 
 {'scenarioId': 'null', 'scenarioName': 'EC_02', 'scenarioDesc': 'EC_02', 'riskEngine': 'null'}
null

为什么要再次转储和加载数据,两次?@KeyurPethad这个答案有用吗?出现了这个错误json.decoder.jsondeCoderror:额外数据::@KeyurPethad你传递的是你在问题中提到的相同输入吗?当我从你的问题中传递输入时,我得到了正确的输出。。很好,现在你编辑了你的代码,首先确定你想问什么,我通过了相同的输入。正如克劳斯指出的那样,编辑代码是多余的。让我再查一查。。谢谢
Stress JSON is as follows 
 {'scenarioId': 'null', 'scenarioName': 'EC_02', 'scenarioDesc': 'EC_02', 'riskEngine': 'null'}
null