当前位置: 首页 > 知识库问答 >
问题:

如何检查Python HTTP请求中存在哪些JSON数据?

韦高谊
2023-03-14

我正在用Python编写一个脚本,它将使用我在网上找到的API生成一个笑话。(https://sv443.net/jokeapi/v2/)。但是,joke的一些设置/问题部分使用JSON数据,这些数据在“setup”和“joke”之间有所不同。我想看看我是否可以编写一个脚本来检查响应是拉哪一个。我这里有我的脚本:

import requests
import json

def getJoke():
  response = requests.get("https://v2.jokeapi.dev/joke/Any")
  print(response.text)
  json_data = json.loads(response.text)
  joke = json_data['joke'] + json_data['setup'] + " " + json_data['delivery']
  print(joke)

getJoke()

其中一些答复是

    "error": false,
    "category": "Christmas",
    "type": "twopart",
    "setup": "How will Christmas dinner be different after Brexit?",
    "delivery": "No Brussels!",

而且

    "error": false,
    "category": "Programming",
    "type": "twopart",
    "joke": "Why is Linux safe?",
    "delivery": "Hackers peak through Windows only.",

有没有一种方法可以检查响应得到的是哪个数据名?

共有1个答案

翟英达
2023-03-14

要检查所有数据字段名称,请执行以下操作:

json_data = json.loads(response.text)
fields = json_data.keys()

然后检查jokesetup是否在字段名称中:

"joke" in fields
"setup" in fields
 类似资料:
  • 我使用POST方法提交表格。表单有一个输入字段:。 我试图检查参数是否存在: 但它不起作用

  • 我知道ICMP请求包含IP地址。客户机MAC地址是否包含在ICMP请求中?ping请求中还包括哪些其他信息(如果有的话)?

  • 谷歌(遗憾地)计划破坏存储权限,使应用程序无法使用标准文件API(和文件路径)访问文件系统。许多人反对它,因为它改变了应用程序访问存储的方式,在很多方面,它是一个受限的API。 因此,如果我们希望处理各种存储卷并访问其中的所有文件,我们将需要在未来的Android版本上完全使用SAF(存储访问框架)(在Android Q上,我们至少可以暂时使用一个标志来使用正常的存储权限)。 例如,假设您想创建一

  • 问题内容: 因此,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。 像这样: 有时,还会有一个额外的字段,例如: 我想检查名为“ club”的字段是否存在,以便在解析时不会得到 org.json.JSONException:club的值 问题答案: JSONObject类具有一个名为“ has”的方法: http://developer.android.com/reference/o

  • 问题内容: 有没有一种方法可以检查里面的道具发生了变化(没有在其他地方存储旧道具)? 即 问题答案: 请注意,该功能现已 弃用 。引用官方文件: 如果仅当属性更改时才用于重新计算某些数据,请改用备忘录助手。 这是指您的内部检查避免不必要地多次重新计算相同内容的情况。在链接的博客文章中,它建议将昂贵功能的结果缓存起来,以便可以查找它,而不是重新计算它。可以使用诸如memoize- one之 类的助手

  • 问题内容: 我正在尝试使用Django / Python处理传入的JSON / Ajax请求。 是在请求中,但是我不知道有效负载在哪里以及JSON数据。 包含以下内容: 在请求发布键中显然没有键。 当我查看Firebug中的POST时,请求中发送了JSON数据。 问题答案: 如果您要将JSON发布到Django,我想您想要(在Django <1.4上)。这将为您提供通过帖子发送的原始JSON数据。