Python 试图从webhook解析JSON数据,但返回错误
我能够很好地接收webhook,但是当我尝试添加代码来读取数据时,它会返回一个错误。我是不是分析错了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
@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数据表示抱歉。“当我尝试添加代码来读取数据时,它会返回一个错误”=>我们应该猜到哪个错误吗???