首页 > 解决方案 > 检索嵌套 JSON 数据时出现关键错误

问题描述

我正在尝试解析一些与嵌套的货币兑换率相关的 JSON 数据。

我希望在以下 JSON 响应中检索“速率”数据:

 "info": {
    "timestamp": 1519328414,
    "rate": 148.972231
},

我正在使用 Django,在我看来,我执行以下操作来尝试检索 JSON 响应中的“速率”数据:

import requests

def currency_convert_view(request):
    if request.is_ajax():
        from_ = request.session.get('currency', "USD")
        to_ = request.POST.get('currency')

        if to_:
            response = requests.get(CURRENCY_BASE_URL +
                "convert?access_key=" + CURRENCY_ACCESS_KEY +
                "&from=" + from_ +
                "&to=" + to_ +
                "&amount=1"
            )
            json_response = response.json()
            conversion_rate = json_response["info"]["rate"]

            accounts = Account.objects.filter(sold=False).order_by('-price')
            prices = [{
                "price": a.price * conversion_rate,
            } for a in accounts]

            return JsonResponse({
                "prices": price,
                "currency": to_,
            })
    return redirect("home")

但是在尝试使用 访问此数据json_response["info"]["rate"]时,我收到以下错误。

conversion_rate = json_response["info"]["rate"]
KeyError: 'info'

我该如何解决这个问题,以便检索嵌套在信息中的费率数据?

标签: pythonjson

解决方案


推荐阅读