我无法从API调用解析此JSON响应,我想提取标牌值(KA40M9202)。
api_response = api_instance.recognize_bytes(params,...,...,...,...)
pprint (api_response)
以下为打印内容
{'results': [{'candidates': [{'confidence': 70.61698913574219,
'matches_template': 0,
'plate': 'KA40M9202'},
{'confidence': 65.3728256225586,
'matches_template': 0,
'plate': 'KA30M9202'},
{'confidence': 65.3718490600586,
'matches_template': 0,
'plate': 'KA10M9202'}],
'matches_template': 0,
'plate': 'KA40M9202',
'processing_time_ms': 39.60576629638672,
}
调用json.loads()
时显示错误
jsonstr = json.loads(api_response)
错误信息
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
答案 0 :(得分:5)
以recognize_
开头的OpenALPR bindings for Python全部返回
以响应字典的形式进行OpenALPR分析
已经存在,因此无需解码JSON。
编辑::文档字符串看起来有点不真实,它返回了一个InlineResponse200
对象,但是它的.results
属性将为您提供结果列表。
答案 1 :(得分:1)
通过阅读@ L3viathan指向的文档,我了解到API响应是一个嵌套列表。
i =0
if(len(api_response.results)!=0) :
for i in api_response.results[0].candidates :
print i.plate
上面的代码将获取必填字段。
答案 2 :(得分:0)
pprint
调用的输出为我们提供了有关此处发生情况的提示。在字符串上调用pprint
时(应该是JSON响应)。它会像这样返回:
('{"results": [{"candidates": [{"confidence": 70.61698913574219, '
'"matches_template": 0, "plate": "KA40M9202"}, {"confidence": '
'65.3728256225586, "matches_template": 0, "plate": "KA30M9202"}, '
'{"confidence": 65.3718490600586, "matches_template": 0, "plate": '
'"KA10M9202"}], "matches_template": 0, "plate": "KA40M9202", '
'"processing_time_ms": 39.60576629638672}]}')
也就是说,作为元组包含用单引号'
包裹的字符串,这提示我们从我们的API调用返回的内容实际上不是JSON字符串而是python数据结构