如何用Python处理PostgreSQL查询结果并转换为指定嵌套数组结构
Python实现PostgreSQL查询结果转层级嵌套结构
实现代码(推荐用法,依赖collections.defaultdict)
from collections import defaultdict # psycopg2返回的查询结果集 query_result = [(1, 20386, 3), (2, 20386, 5), (3, 20386, 5), (1, 20387, 2), (2, 20387, 2), (3, 20387, 3), (1, 20390, 3), (2, 20390, 3), (3, 20390, 3)] # 初始化嵌套字典 user = defaultdict(dict) # 遍历结果集赋值 for inner_idx, outer_key, val in query_result: # 如需外层键为数字类型,去掉str()包裹即可 user[str(outer_key)][inner_idx] = val # 可选:转换为普通原生字典 user = dict(user)
无依赖实现(仅用原生字典)
user = {} for inner_idx, outer_key, val in query_result: outer_key_str = str(outer_key) if outer_key_str not in user: user[outer_key_str] = {} user[outer_key_str][inner_idx] = val
结果验证
执行后即可通过和示例一致的方式取值:
user['20386'][1]返回3user['20387'][3]返回3user['20390'][2]返回3
内容的提问来源于stack exchange,提问作者mick
相关产品推荐
相关产品推荐

