我尝试使用带curl的API,返回一个JSON:
response=$(curl -i --user api:$APIKey --data-binary @$target https://api.tinypng.com/shrink)
接下来,我尝试用一个函数解析响应:
parseJson(){
result="$1"
result=($(echo $result | python -mjson.tool))
result=${result%\"*}
result=${result##*\"}
return $result
}
我这样称呼它:message=$(parseJson "$response" message)
。仅供参考,回复是多行的。在
但是奇怪的事情发生了:python给了我No JSON object could be decoded
,但是如果我回显$result,就会有一个很好的JSON字符串。更奇怪的是,如果我在调用python之前回响了它,那么看起来python似乎是先执行的。在
有什么异步技巧吗?为什么不能将变量字符串传递给python?在
任何帮助或更好的方法将不胜感激!在
您可以尝试使用HttpConnection而不是调用curl,并直接在python中执行所有操作:
要获取json,只需执行以下操作:
^{pr2}$我认为}是这里的关键。该错误通常从美赞臣工具对于空字符串,而格式错误的JSON通常返回更详细的内容。在
No JSON Object could be decoded
和{JSON解析器不会越过第一个换行符(引号字符串值之外)。它可能接收到类似于\r\n{“key”:“value”}的内容并失败。如果由于某种原因响应在多行上,则应解析出响应正文(JSON),而不必使用前导或尾随的\r\n
相关问题 更多 >
编程相关推荐