不幸的是,我只能提供请求的输出,而不是完整的代码,因为它包含相当私人的信息,基本上当将请求打印为文本文件时,我得到一个json文件,类似于:
{"paymentResource":{"paymentToken":"PAYID-MEJ------","intent":"authorize","redirectUrl":"https://www.paypal.com/checkoutnow?nolegacy=1u0026token=EC-5JS-----2S","authenticateUrl":null}}
我怎么能刮贝宝网址?尝试这样做,但它没有工作(ppstep2是请求的名称):
content = ppstep2.json()
pp = content["redirectUrl"]
我只在执行时得到这个错误:
pp = content["redirectUrl"]
KeyError: 'redirectUrl'
你的变量content是一本字典。
获取"redirectUrl"你可以这样做:
pp = content['paymentResource']['redirectUrl']
键错误是由于没有包含['paymentResource']引起的
我建议你也检查一下python字典和。get()方法。
https://docs.python.org/3/library/stdtypes.html?highlight=dictionary%20get dict.get
尝试在访问print(json.dumps(content, indent=4))
并查看输出之前添加它。你可能会发现为什么。
redirectUrl
不是content
的一部分。在响应内容的content['paymentResource']
字典中。
使用content['paymentResource']['redirectUrl']
应该可以。
编辑:如果你想尝试得到一个值而不以异常结束,尝试使用.get():
# This will result in a KeyError as you experienced:
pp = content["redirectUrl"]
# This will instead set pp to None if 'redirectUrl' doesn't exist as a Key
pp = content.get("redirectUrl", None)