这是我的json:
{
"documents": [
{
"score": 0.5,
"id": "1"
}
],
"errors": []
}
我想知道如何在不将其转换为字典的情况下获取“得分”?因为当我尝试使用json.loads时,它会给我以下错误:
ValueError at /post/
No JSON object could be decoded
这是我正在使用的代码。
def GetSentiment(documents):
"Gets the sentiments for a set of documents and returns the
information."
headers = {'Ocp-Apim-Subscription-Key': accessKey}
conn = httplib.HTTPSConnection(uri)
body = json.dumps(documents)
conn.request("POST", path, body, headers)
response = conn.getresponse()
return response.read()
documents = {'documents': [
{'id': '1', 'language': 'en', 'text': caption},
]}
result = GetSentiment(documents)
resp_dict = json.loads(result)
print resp_dict
score = resp_dict["documents"][0]["score"]
return score
答案 0 :(得分:0)
我看过你的JSON转换代码,很好:
>>> result = '{"documents": [{"score": 0.5,"id": "1"}],"errors": []}'
>>> import json
>>> resp_dict = json.loads(result)
>>> score = resp_dict["documents"][0]["score"]
>>> print score
0.5 # success !
所以你的问题必须是result
对象,这不是你建议的。您的GetSentiment
功能确实存在问题。
您的print result
行会产生什么?此外,您是否尝试过使用requests之类的东西来让您的生活更轻松?