首页 > 编程语言 >Python-嵌套字典获取特定的键值对

Python-嵌套字典获取特定的键值对

时间:2023-08-14 16:14:19浏览次数:47  
标签:keys name Python age 嵌套 键值 test data 字典

简单示例:

test_data = [
    {"name": "路飞", "age": 18, "from": "Donghai sea"},
    {"name": "索隆", "age": 18, "from": "Xihai sea"}
]

for hz in test_data:  # 遍历 test_data 数组中的每个字典
    name = hz.get('name')  # 每个字典使用get()方法获取"name"和"age"键对应的值
    birthplace = hz.get('from')  # 并将他们存在 name和birthplace变量中
    if name and birthplace:  # 使用if条件语句检查是否成功获取了这两个值
        print(name)  # 满足条件打印
        print(birthplace)

 

方法一:

使用循环遍历数组中的每个字典,然后使用键值对来访问对应的值。

适用于数组中包含多个字典且每个字典的结构不同。

test_data = [
    {"name": "路飞", "age": 18, "from": "Donghai sea"},
    {"name": "索隆", "age": 18, "from": "Xihai sea"}
]

keys = ['name', 'from']
result = []
for hz in test_data:
    values = {key: hz.get(key) for key in keys}
    result.append(values)
print(result)

 

方法二:

使用列表推导式。

适用于数组中包含多个字典且每个字典的结构相同。

test_data = [
    {"name": "路飞", "age": 18, "from": "Donghai sea"},
    {"name": "索隆", "age": 18, "from": "Xihai sea"}
]

keys = ['name', 'age', 'from']
result = [[hz[key] for key in keys] for hz in test_data]
print(result)

 

方法三:

使用列表推导式和zip()函数。遍历数组中的每个字典,使用values()方式获取每个字典的所有值,并使用zip()函数将指定的键(keys)与对应的值进行配对。

然后,通过使用dict()函数将配对的键值转换为新的字典。

好处是,这种方法它创建一个新的字典,其中只包含指定的键值对,而不需要在原始的字典中进行修改。

    {"name": "路飞", "age": 18, "from": "Donghai sea"},
    {"name": "索隆", "age": 18, "from": "Xihai sea"}
]

keys = ['name', 'from']
result = [dict(zip(keys, item.values())) for item in test_data]
print(result)

 

补充:

如果只需要从一个字典中获取特定的键值对,而不是从数组中的多个字典中获取,可使用如下方法。

test_data = {
    "name": "路飞",
    "age": 18,
    "from": "Donghai sea"
}

keys = ['name', 'age', 'from']
values = [test_data[key] for key in keys]
print(values)

 

标签:keys,name,Python,age,嵌套,键值,test,data,字典
From: https://www.cnblogs.com/TSmagic/p/17628903.html

相关文章

  • Python PIL Image.crop()详解+裁剪四元组定位的小技巧
    0Image.crop详解image.crop是Python中用于裁剪图片的函数。在使用该函数前,我们需要先导入PIL库,即PythonImageLibrary。fromPILimportImage#打开图片img=Image.open('example.jpg')#图片的裁剪区域(区域左上角的坐标为(100,100),右下角的坐标为(300,300))crop_are......
  • 9.0 Python 内置模块应用
    Python是一种高级、面向对象、通用的编程语言,由GuidovanRossum发明,于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库和......
  • python的format打印格式'{0:2d} @ {1:2d} {2}{0:<2d}'的含义
    #BEGINBISECT_DEMOimportbisectimportsysHAYSTACK=[1,4,5,6,8,12,15,20,21,23,23,26,29,30]NEEDLES=[0,1,2,5,8,10,22,23,29,30,31]ROW_FMT='{0:2d}@{1:2d}{2}{0:<2d}'defdemo(bisect_fn):forneedleinreversed(N......
  • Python基础day64 auth模块
    csrf跨站请求的相关装饰器#Django中有一个中间件对csrf跨站做了验证,我只要把csrf的这个中间件打开,意味着所有的方法都要被验证在所有的视图函数中:只有几个视图函数做验证只有几个函数不做验证#csrf_protect:哪个视图函数加了这个装饰器,这个函数就会做验证#csrf_exempt......
  • ​Python爬虫IP代理池的建立和使用
    写在前面建立Python爬虫IP代理池可以提高爬虫的稳定性和效率,可以有效避免IP被封锁或限制访问等问题。下面是建立Python爬虫IP代理池的详细步骤和代码实现:1.获取代理IP我们可以从一些代理IP网站上获取免费或付费的代理IP,或者自己租用代理IP服务。这里我们以站大爷代理为例,获取......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都......
  • 6.0 Python 使用函数装饰器
    装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为"装饰器"(Decorator),装饰器的功能非常强大,装饰器一般接受一个函数对象作为参数,以对其进行增强,相当于C++中的构造函数,与析构函数。装饰器本质上是一个python函数,它可以让其他函数......
  • 7.0 Python 面向对象编程
    python是一种面向对象的编程语言,面向对象编程(Object-OrientedProgramming,OOP)是一种编程思想,其核心概念是“对象”。对象是指一个具有特定属性和行为的实体,而面向对象编程就是通过对这些实体进行抽象、分类、封装和继承等操作,来实现程序的结构和逻辑。在python中,我们可以通过定义类......
  • 9.0 Python 内置模块应用
    Python是一种高级、面向对象、通用的编程语言,由GuidovanRossum发明,于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。Python语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库......
  • 8.0 Python 使用进程与线程
    python进程与线程是并发编程的两种常见方式。进程是操作系统中的一个基本概念,表示程序在操作系统中的一次执行过程,拥有独立的地址空间、资源、优先级等属性。线程是进程中的一条执行路径,可以看做是轻量级的进程,与同一个进程中的其他线程共享相同的地址空间和资源。线程和进程都可......