Python 试图从webhook解析JSON数据,但返回错误

Python 试图从webhook解析JSON数据,但返回错误,python,json,Python,Json,我能够很好地接收webhook,但是当我尝试添加代码来读取数据时,它会返回一个错误。我是不是分析错了 @require_POST @csrf_exempt def webhook(request): print("webhook kaldt") event_json = json.loads(request.body) status = event_json['status'] print(status) return HttpResponse(statu

我能够很好地接收webhook,但是当我尝试添加代码来读取数据时,它会返回一个错误。我是不是分析错了

@require_POST
@csrf_exempt
def webhook(request):
    print("webhook kaldt")
    event_json = json.loads(request.body)
    status = event_json['status']
    print(status)
    return HttpResponse(status=200)
如果我删除
status
变量和打印行,那么一切正常。就在我试图解析数据的时候

来自event_json的数据如下所示

{“created”:1326853478,“livemode”:false,“id”: “charge.successed\uu00000000000000”,“键入”:“charge.successed”, “object”:“event”,“request”:null,“pending_webhooks”:1, “api_版本”:“2019-03-14”,“数据”:{“对象”:{“id”: “CHU00000000000000”,“对象”:“费用”,“金额”:100, “退款金额”:0,“申请”:null,“申请费”:null, “申请费金额”:空,“余额交易”: “txn_U00000000000000”,“账单详情”:{“地址”:{“城市”:空, “国家”:“DK”,“第1行”:空,“第2行”:空,“邮政编码”:空, “state”:null},“email”:null,“name”:“qwewqwq”,“phone”:null}, “捕获”:假,“创建”:1553170537,“货币”:“丹麦克朗”, “客户”:空,“描述”:“我的第一次测试费用(为 API文档“,“目的地”:null,“争议”:null,“故障代码”: null,“失败消息”:null,“欺诈详细信息”:{},“发票”:null, “livemode”:false,“metadata”:{}”,代表:null,“order”: 空,“结果”:空,“支付”:真,“支付意图”:空, “付款方式详情”:{“卡”:{“品牌”:“签证”,“支票”: {“地址行1检查”:null,“地址邮政编码检查”:null, “cvc检查”:“通过”},“国家”:“美国”,“出口月”:1,“出口年”: 2022年,“指纹”:“JKbTj7sZqbPMQJ9p”,“资金”:“信贷”,“最后4”: “4242”,“三个安全”:null,“钱包”:null},“键入”:“卡”}, “收据电子邮件”:null,“收据编号”:null,“收据url”: "", “退款”:false,“退款”:{“对象”:“列表”,“数据”:[], “has_more”:false,“total_count”:0,“url”: “/v1/费用/CHU 1EGPo5B2MQ8LEk6k47xo3CcZ/退款”},“审查”:空, “shipping”:null,“source”:{“id”:“card_00000000000000”,“object”: “卡”,“地址城市”:空,“地址国家”:“DK”, “地址行1”:空,“地址行1”检查:空,“地址行2”: null,“地址\状态”:null,“地址\邮政编码”:null,“地址\邮政编码\支票”: 空,“品牌”:“签证”,“国家”:“美国”,“客户”: “cus_00000000000000”,“cvc_检查”:“通过”,“动态_last4”:空, “经验月”:1,“经验年”:2022,“指纹”:“JKbTj7sZqbPMQJ9p”, “资金”:“信贷”,“最后4”:“4242”,“元数据”:{},“名称”: “qwewqwq”,“标记化方法”:null},“源传输”:null, “语句描述符”:null,“状态”:“成功”,“传输数据”: null,“传输组”:null}}


如果美化json,您将看到根对象中没有“status”属性

你可以试试

event_json['data']['object']['status']
格式化json

{
    "created": 1326853478,
    "livemode": false,
    "id": "charge.succeeded_00000000000000",
    "type": "charge.succeeded",
    "object": "event",
    "request": null,
    "pending_webhooks": 1,
    "api_version": "2019-03-14",
    "data": {
        "object": {
            "id": "ch_00000000000000",
            "object": "charge",
            "amount": 100,
            "amount_refunded": 0,
            "application": null,
            "application_fee": null,
            "application_fee_amount": null,
            "balance_transaction": "txn_00000000000000",
            "billing_details": {
                "address": {
                    "city": null,
                    "country": "DK",
                    "line1": null,
                    "line2": null,
                    "postal_code": null,
                    "state": null
                },
                "email": null,
                "name": "qwewqwq",
                "phone": null
            },
            "captured": false,
            "created": 1553170537,
            "currency": "dkk",
            "customer": null,
            "description": "My First Test Charge (created for API docs)",
            "destination": null,
            "dispute": null,
            "failure_code": null,
            "failure_message": null,
            "fraud_details": {},
            "invoice": null,
            "livemode": false,
            "metadata": {},
            "on_behalf_of": null,
            "order": null,
            "outcome": null,
            "paid": true,
            "payment_intent": null,
            "payment_method_details": {
                "card": {
                    "brand": "visa",
                    "checks": {
                        "address_line1_check": null,
                        "address_postal_code_check": null,
                        "cvc_check": "pass"
                    },
                    "country": "US",
                    "exp_month": 1,
                    "exp_year": 2022,
                    "fingerprint": "JKbTj7sZqbPMQJ9p",
                    "funding": "credit",
                    "last4": "4242",
                    "three_d_secure": null,
                    "wallet": null
                },
                "type": "card"
            },
            "receipt_email": null,
            "receipt_number": null,
            "receipt_url": "https://pay.stripe.com/receipts/acct_1E4YZiB2MQ8LEk6k/ch_1EGPo5B2MQ8LEk6k47xo3CcZ/rcpt_EjtbkjCrHE8bfSS0Xxa5iW3UBNjqK7C",
            "refunded": false,
            "refunds": {
                "object": "list",
                "data": [],
                "has_more": false,
                "total_count": 0,
                "url": "/v1/charges/ch_1EGPo5B2MQ8LEk6k47xo3CcZ/refunds"
            },
            "review": null,
            "shipping": null,
            "source": {
                "id": "card_00000000000000",
                "object": "card",
                "address_city": null,
                "address_country": "DK",
                "address_line1": null,
                "address_line1_check": null,
                "address_line2": null,
                "address_state": null,
                "address_zip": null,
                "address_zip_check": null,
                "brand": "Visa",
                "country": "US",
                "customer": "cus_00000000000000",
                "cvc_check": "pass",
                "dynamic_last4": null,
                "exp_month": 1,
                "exp_year": 2022,
                "fingerprint": "JKbTj7sZqbPMQJ9p",
                "funding": "credit",
                "last4": "4242",
                "metadata": {},
                "name": "qwewqwq",
                "tokenization_method": null
            },
            "source_transfer": null,
            "statement_descriptor": null,
            "status": "succeeded",
            "transfer_data": null,
            "transfer_group": null
        }
    }
}```

对不起,我还不太熟悉JSON。我只在极少数不得不使用的情况下使用过它。但是你的回答完全正确,它解决了我的问题。因此,感谢您的支持,并对未格式化的JSON数据表示抱歉。“当我尝试添加代码来读取数据时,它会返回一个错误”=>我们应该猜到哪个错误吗???