如何访问嵌套字典?如何单独提取其中的body与title字段?
嗨,我来给你捋捋怎么单独访问嵌套字典里的title和body字段~
访问嵌套字典中的title和body字段
首先先假设你的params大概是这种典型的嵌套结构(要是你能贴出具体结构,我还能给更精准的方案):
params = { "data": { "post": { "title": "我的第一篇帖子", "body": "这是帖子的正文内容" } } }
直接通过键层级访问
如果确定字典的层级结构是固定的,直接顺着键的层级往下取就行:
- 获取title:
params["data"]["post"]["title"] - 获取body:
params["data"]["post"]["body"]
运行后就能拿到对应的字段值,比如上面的例子里,params["data"]["post"]["title"]会返回"我的第一篇帖子"。
用.get()方法避免KeyError
如果不确定某个层级的键是否存在,怕报错的话,推荐用.get()方法,还能设置默认值兜底:
- 获取title:
params.get("data", {}).get("post", {}).get("title", "默认标题") - 获取body:
params.get("data", {}).get("post", {}).get("body", "默认正文")
这样就算中间某个键不存在,也不会抛出KeyError,而是返回你设置的默认值(比如这里的"默认标题")。
如果嵌套里包含列表
要是你的字典里还嵌套了列表,比如这种结构:
params = { "posts": [ { "title": "帖子1", "body": "正文1" }, { "title": "帖子2", "body": "正文2" } ] }
那就要先通过索引取列表里的元素,再访问字段:
- 获取第一个帖子的title:
params["posts"][0]["title"] - 获取第二个帖子的body:
params["posts"][1]["body"]
如果要遍历所有帖子的title和body,可以用循环:
for post in params["posts"]: print("标题:", post["title"]) print("正文:", post["body"])
内容的提问来源于stack exchange,提问作者LilMoke
相关产品推荐
相关产品推荐

