我有一个子流程,它包含一种验证凭证并返回如下响应的方法:
{
"isvalid" : false
}
我使用它来获取响应并检查凭证是否通过了测试:
def slraddresstest():
while True:
solarcoin_address = raw_input ("What is your SolarCoin Address: ")
output = subprocess.check_output(['solarcoind', 'validateaddress', solarcoin_address], shell=False)
if output != "{\"isvalid\" : false}"
return solarcoin_address
else:
print ("Error: SolarCoin address invlaid, check and try again")
但是在运行代码时我得到了:
if output != "{\"isvalid\" : false}"
^
SyntaxError: invalid syntax
我还尝试了if output != '{"isvalid" : false}'
和if output != """{"isvalid" : false}"""
,但我遇到了类似的语法错误。
答案 0 :(得分:1)
if output != "{\"isvalid\" : false}":
答案 1 :(得分:0)
您可能已经发现了,但我仍在供参考:
solarcoind正在重现json。因此,以下修改有效(在python 3中):
output = subprocess.check_output(['solarcoind','validateaddress',solarcoin_address], shell = False).decode("utf-8")
if( json.loads(output)['isvalid'] != False):
在python> = 3.6中,可能不需要.decode(“ utf-8”)。