
本文详细介绍了如何在python中高效处理复杂的嵌套字典与列表数据结构。通过逐步解析数据层级,文章演示了如何遍历深层嵌套的元素,并应用自定义过滤条件(例如排除特定值组合的记录),最终提取出目标键(如'asset', 'free', 'locked')的对应值。教程包含完整的代码示例、详细解释及优化建议,旨在帮助读者掌握复杂数据提取与清洗的实用技巧。
正文
引言:处理Python复杂嵌套数据
在现代数据处理中,我们经常会遇到结构复杂的JSON或类JSON数据,它们通常以Python字典和列表的嵌套形式呈现。从这些深层嵌套的数据中准确地提取所需信息,并根据特定条件进行过滤,是Python编程中一项常见的任务。本教程将以一个具体的示例,详细讲解如何有效地导航这些复杂结构,实现数据的提取与过滤。
理解数据结构
首先,我们来看一个典型的嵌套数据结构示例。这是一个字典,其中包含一个列表,列表的每个元素又是一个字典,再往里又嵌套了字典和列表。
repo_data = {
'code': 200,
'msg': '',
'snapshotVos': [
{
'data': {
'balances': [
{'asset': 'ADD', 'free': '10', 'locked': '0'},
{'asset': 'RDP', 'free': '0', 'locked': '0'},
{'asset': 'SHIB', 'free': '0', 'locked': '947415'}
],
'totalAsset': '152'
},
'type': 'spot',
'updateTime': 1703807999000
}
]
}登录后复制
我们的目标是从'balances'列表中提取每个元素的'asset'、'free'和'locked'值,但要排除那些'free'和'locked'都为'0'的记录。
逐层访问与数据提取
要访问深层嵌套的数据,我们需要像剥洋葱一样,一层一层地深入。
立即学习“Python免费学习笔记(深入)”;
-
访问顶层键: 数据首先是一个字典,我们可以通过键'snapshotVos'访问其对应的值,这是一个列表。
snapshot_vos_list = repo_data['snapshotVos']
登录后复制
-
遍历列表元素: snapshot_vos_list是一个列表,我们需要遍历它来访问每个字典元素。
for snapshot_item in snapshot_vos_list: # snapshot_item 现在是 {'data': {...}, 'type': 'spot', ...} pass登录后复制
-
访问嵌套字典: 在每个snapshot_item中,我们可以通过键'data'访问另一个字典。
for snapshot_item in snapshot_vos_list: data_content = snapshot_item['data'] # data_content 现在是 {'balances': [...], 'totalAsset': '152'} pass登录后复制

-
访问目标列表: 在data_content中,我们可以通过键'balances'访问我们最终的目标列表,其中包含了多个资产余额信息。
for snapshot_item in snapshot_vos_list: data_content = snapshot_item['data'] balances_list = data_content['balances'] # balances_list 现在是 [{'asset': 'ADD', ...}, {'asset': 'RDP', ...}, ...] pass登录后复制
遍历目标列表并提取数据: 最后,我们需要遍历balances_list中的每个字典,并从中提取'asset'、'free'和'locked'的值。
标签: python js json app python编程 red
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~