KeyError 读取 JSON 文件
KeyError reading a JSON file
编辑:这里有更多关于如何接收 JSON 的上下文。我正在使用 ApiAI API 向他们的平台生成请求,他们有一个方法来检索它,如下所示:
# instantiate ApiAI
ai = apiai.ApiAI(CLIENT_ACCESS_TOKEN)
# declare a request obect, fill in in lower lines
request = ai.text_request()
# send ApiAI the request
request.query = "{}".format(textobject.body)
# get response from ApiAI
response = request.getresponse()
response_decode = response.read().decode("utf-8")
response_data = json.loads(response_decode)
我正在用 Django 编写一个 Web 应用程序,并试图通读一个 JSON 发布到 Webhook 的响应。读取 JSON 的代码在解码后是:
if response_data['result']['action'] != "":
Request.objects.create(
request = response_data['result']['resolvedQuery']
)
当我尝试 运行 这段代码时,我得到了这个错误:
KeyError: 'result'
上线
if response_data['result']['action'] != "":
我很困惑,因为在我看来 'result'
应该是正在读取的 JSON 的有效密钥:
{
'id':'65738806-eb8b-4c9a-929f-28dc09d6a333',
'timestamp':'2017-07-10T04:59:46.345Z',
'lang':'en',
'result':{
'source':'agent',
'resolvedQuery':'Foobar',
'action':'Baz'
},
'alternateResult':{
'source':'domains',
'resolvedQuery':'abcdef',
'actionIncomplete':False,
},
'status':{
'code':200,
'errorType':'success'
}
}
还有其他方法可以让我在我的程序中阅读这个 JSON 吗?
尝试:
import JSON
if 'action' in response_data:
parsed_data = json.loads(response_data)
if parsed_data['result']['action'] != "":
Request.objects.create(request = parsed_data['result']['resolvedQuery'])
感谢大家的想法。事实证明,我尝试实现 ApiAI API 的方式存在另一个错误,这导致了此错误。它现在通读 JSON 很好,我正在使用@sasuke 的建议。
编辑:这里有更多关于如何接收 JSON 的上下文。我正在使用 ApiAI API 向他们的平台生成请求,他们有一个方法来检索它,如下所示:
# instantiate ApiAI
ai = apiai.ApiAI(CLIENT_ACCESS_TOKEN)
# declare a request obect, fill in in lower lines
request = ai.text_request()
# send ApiAI the request
request.query = "{}".format(textobject.body)
# get response from ApiAI
response = request.getresponse()
response_decode = response.read().decode("utf-8")
response_data = json.loads(response_decode)
我正在用 Django 编写一个 Web 应用程序,并试图通读一个 JSON 发布到 Webhook 的响应。读取 JSON 的代码在解码后是:
if response_data['result']['action'] != "":
Request.objects.create(
request = response_data['result']['resolvedQuery']
)
当我尝试 运行 这段代码时,我得到了这个错误:
KeyError: 'result'
上线
if response_data['result']['action'] != "":
我很困惑,因为在我看来 'result'
应该是正在读取的 JSON 的有效密钥:
{
'id':'65738806-eb8b-4c9a-929f-28dc09d6a333',
'timestamp':'2017-07-10T04:59:46.345Z',
'lang':'en',
'result':{
'source':'agent',
'resolvedQuery':'Foobar',
'action':'Baz'
},
'alternateResult':{
'source':'domains',
'resolvedQuery':'abcdef',
'actionIncomplete':False,
},
'status':{
'code':200,
'errorType':'success'
}
}
还有其他方法可以让我在我的程序中阅读这个 JSON 吗?
尝试:
import JSON
if 'action' in response_data:
parsed_data = json.loads(response_data)
if parsed_data['result']['action'] != "":
Request.objects.create(request = parsed_data['result']['resolvedQuery'])
感谢大家的想法。事实证明,我尝试实现 ApiAI API 的方式存在另一个错误,这导致了此错误。它现在通读 JSON 很好,我正在使用@sasuke 的建议。