Python 通过命令提示符传递json
我通过命令提示符将以下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
$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