从请求响应中抓取值



不幸的是,我只能提供请求的输出,而不是完整的代码,因为它包含相当私人的信息,基本上当将请求打印为文本文件时,我得到一个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)

相关内容

  • 没有找到相关文章

最新更新