【问题标题】:How to get JSON response in Python?如何在 Python 中获取 JSON 响应?
【发布时间】:2021-09-22 14:21:39
【问题描述】:

我一直在尝试从以下代码中获取 JSON 响应,但它抛出了一个错误

from requests import get 
import json
url = "https://api.wheretheiss.at/v1/satellites/25544"
response = get(url)
for item in response:
    print(item, response[item])

我想按以下格式打印 JSON:

https://i.stack.imgur.com/ZWMbr.png

【问题讨论】:

  • 错误是什么?也不要发布文字截图。
  • 打印出response.text。使用 json 查看器(这是我的 preferred one)来可视化它。一旦你理解了数据结构,你就可以访问它。
  • 请向我们展示完整的错误。简单地说“它正在引发错误”对于诊断问题没有用处。
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: python json networking


【解决方案1】:

您的代码可以很好地从 url 获得正确的响应。问题是您应该将原始响应解析为 json 格式。请参考以下代码:

from requests import get 
import json
url = "https://api.wheretheiss.at/v1/satellites/25544"
response = get(url)

# dump response into json
result = response.content.decode('utf-8')
result = json.loads(result)
print(result) # print raw json

# print as key-value pairs
for item in result:
    print("{0} : {1}".format(item, result[item]))

输出如下: Example output

【讨论】:

    【解决方案2】:

    我认为您误解了响应包含的内容。

    你的初始代码很好。

    from requests import get 
    import json
    url = "https://api.wheretheiss.at/v1/satellites/25544"
    response = get(url)
    

    您现在有回复。请参阅here 了解更多信息。

    在此响应中,您有 status_code、内容、编码和响应内容作为文本。它还包含有关请求的其他信息。例如,如果请求失败,我们不想继续

    您可以通过 response.text 对解码后的响应调用 json.loads 来简单地解析 json

    parsed_json = json.loads(response.text)
    or
    parsed_json  = response.json()
    
    for item in json_:
        print(item, json_[item])
    
    

    我希望它有所帮助。它也复制到HTTP requests and JSON parsing in Python

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多