Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何在 Python 中从 JSON 数据中提取图片 URL_创想鸟

如何在 Python 中从 JSON 数据中提取图片 URL

如何在 python 中从 json 数据中提取图片 url

本文介绍了如何使用 Python 从包含嵌套字典的 JSON 数据中提取特定的图片 URL。通过 `requests` 库获取 JSON 数据,并使用 `get` 方法安全地访问嵌套字典中的目标值,避免因键不存在而导致的程序错误。本文提供了详细的代码示例和解释,帮助开发者轻松提取所需信息。

在使用 Python 处理 API 返回的 JSON 数据时,经常需要提取特定字段的值。当 JSON 数据包含嵌套的字典结构时,直接访问可能导致 KeyError 异常。本文将介绍如何安全有效地从嵌套的 JSON 字典中提取图片 URL。

假设我们已经通过 requests 库获取了 JSON 数据,并且解析后的数据存储在名为 character_data 的字典中。目标是从 character_data[“decorations”][“avatarUrl”] 获取头像 URL。

以下代码展示了如何使用 get 方法安全地访问嵌套字典中的 avatarUrl:

立即学习“Python免费学习笔记(深入)”;

import requestsdef get_avatar_url(character_id):    """    从 D&D Beyond API 获取角色头像 URL。    Args:        character_id (int): 角色 ID。    Returns:        str: 头像 URL,如果找不到则返回空字符串。    """    req = requests.get(f"https://character-service.dndbeyond.com/character/v5/character/{character_id}")    if req.status_code != 200:        print(f"请求失败,状态码: {req.status_code}")        return ""    try:        j = req.json()        if not "success" in j or not "data" in j:            print("JSON 数据格式不正确")            return ""        character_data = j["data"]        avatar_url = character_data.get("decorations", {}).get("avatarUrl", "")        return avatar_url    except ValueError as e:        print(f"JSON 解析失败: {e}")        return ""# 示例用法character_id = 108291017  # 替换为实际的角色 IDavatar_url = get_avatar_url(character_id)if avatar_url:    print(f"头像 URL: {avatar_url}")else:    print("无法获取头像 URL")

代码解释:

requests.get(): 使用 requests 库向指定的 URL 发送 GET 请求,获取角色数据。req.status_code: 检查 HTTP 状态码,确保请求成功(状态码为 200)。req.json(): 将响应内容解析为 JSON 格式的 Python 字典。character_data.get(“decorations”, {}).get(“avatarUrl”, “”): 这是核心部分。character_data.get(“decorations”, {}) 尝试获取 character_data 字典中键为 “decorations” 的值。如果 “decorations” 键不存在,则返回一个空字典 {} 作为默认值。.get(“avatarUrl”, “”) 接着尝试从 decorations 字典(或者空字典,如果 “decorations” 键不存在)中获取键为 “avatarUrl” 的值。如果 “avatarUrl” 键不存在,则返回一个空字符串 “” 作为默认值。

使用 get 方法的优势:

使用 get 方法可以避免因键不存在而导致的 KeyError 异常。如果直接使用 character_data[“decorations”][“avatarUrl”],当 “decorations” 或 “avatarUrl” 键不存在时,程序会抛出异常。而 get 方法在键不存在时会返回指定的默认值,使代码更加健壮。

其他方法 (不推荐):

虽然可以使用 try…except 块来捕获 KeyError 异常,但这通常不是最佳实践,因为它会隐藏其他潜在的错误。

try:    avatar_url = character_data["decorations"]["avatarUrl"]except KeyError:    avatar_url = ""

总结:

使用 get 方法是安全有效地从嵌套 JSON 字典中提取数据的推荐方法。它避免了 KeyError 异常,并允许您在键不存在时指定默认值,使代码更加健壮和易于维护。在处理来自 API 的 JSON 数据时,请始终考虑使用 get 方法来访问字典中的值。

以上就是如何在 Python 中从 JSON 数据中提取图片 URL的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1381508.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
优雅测试 Python input() 提示信息:解耦与实践
上一篇 2025年12月14日 23:01:19
解决Django生产环境CSRF 403错误:Nginx HTTPS配置指南
下一篇 2025年12月14日 23:01:33

相关推荐

发表回复

登录后才能评论
关注微信